Шаблон экранирования ZSH / файла

Это работает из командной строки:

scp -r ^.git b:/home/wopi/blyzics/.

когда я вставляю приведенную выше строку в скрипт, как это:

#!/usr/bin/env zsh
scp -r ^.git b:/home/wopi/blyzics/.

И запустить его

./deploy.sh

Я получил:

^.git: No such file or directory

Зачем?

1 ответ

Решение

С помощью ^.filename функция включена только тогда, когда EXTENDED_GLOB установлено. У вас, вероятно, есть этот набор в вашем .zshrc для интерактивного использования, но сценарий оболочки не будет использовать это.

Смотрите руководство по zsh для информации. Чтобы включить это в ваших скриптах, вы можете просто запустить:

setopt extended_glob

в верхней части вашего сценария. Обратите внимание, что это не переносимо, однако.

Другие вопросы по тегам