Zsh中的shift失败:"shift计数必须<= $#"

3

我有一个包含shift命令的bash脚本。

在bash环境中它可以正常运行,但在zsh环境中,shift命令似乎不同。

zsh

$ shift
shift: shift count must be <= $#

bash

$ shift

# OK here
< p >“shift”命令是否与“zsh”和“bash”不兼容?我该如何使脚本在“zsh”中运行?< /p >
1个回答

6

shift 的参数大于位置参数的数量(即$#)时,两种shell都将其视为错误。

由于没有位置参数时,省略参数的shift 实际上与shift 1 几乎相同,这会导致错误并返回一个非零退出值。

唯一的区别是zsh在出现这种情况时打印错误消息,而bash则不会。

bash

$ set --
$ shift
$ echo $?
1

zsh

$ set --
$ shift
shift: shift count must be <= $#
$ echo $?
1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接