Shell

ZSH 轉義/文件匹配模式

  • January 27, 2013

這適用於命令行:

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的互動式使用中設置了這個,但 shell 腳本不會使用它。

有關資訊,請參閱zsh 手冊。要在您的腳本中啟用此功能,您只需執行:

setopt extended_glob

在腳本的頂部。但是請注意,這不是可移植的。

引用自:https://serverfault.com/questions/472773