ZSH 命令在 shell 中运行,但不在脚本中运行

ZSH 命令在 shell 中运行,但不在脚本中运行

我在终端中运行此 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大多数系统上的情况)。

相关内容