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