Назад | Перейти на главную страницу

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

Зачем ?

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

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

setopt extended_glob

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