Шаблон экранирования 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
в верхней части вашего сценария. Обратите внимание, что это не переносимо, однако.