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时启用的function。 您可能在.zshrc设置了这个用于交互式使用的设置,但是shell脚本不会使用这个。

有关信息,请参阅zsh手册 。 要在您的脚本中启用此function,您可以简单地运行:

 setopt extended_glob 

在脚本的顶部。 请注意,这不是便携式的,但是。