我在终端中运行这个 zsh 链式命令:
cd /path/to/backups/pod3 && rm -rf ./*(Om[1,-10])
Run Code Online (Sandbox Code Playgroud)
这工作正常并按预期删除适当的目录。
但是,当我将其放入脚本时,出现此错误:
syntax error near unexpected token `('
Run Code Online (Sandbox Code Playgroud)
我做了一些研究,似乎我需要在我的 shell 脚本中设置它:
setopt extended_glob
Run Code Online (Sandbox Code Playgroud)
但是,在脚本顶部添加该行后,它会引发自己的错误。
setopt: command not found
Run Code Online (Sandbox Code Playgroud)
所以我不确定我在这里做错了什么以及如何解决这个问题。
您需要在脚本中添加一个 she-bang 来告诉系统该脚本必须由 解释zsh
,否则它将被解释为sh
:
#! /bin/zsh -
cd /path/to/backups/pod3 && rm -rf ./*(Om[1,-10])
Run Code Online (Sandbox Code Playgroud)
更改/bin/zsh
为zsh
可执行文件的实际路径,或将整个 she-bang 行更改为:
#! /usr/bin/env zsh
Run Code Online (Sandbox Code Playgroud)
对的路径zsh
中要查找$PATH
(假设env
命令是在/usr/bin
这是在大多数系统的情况下)。
归档时间: |
|
查看次数: |
2625 次 |
最近记录: |