我有一个 bash 脚本,其中包含shift
命令的 bash 脚本。
在 bash 中运行正常,但在 zsh 环境中,shift
命令似乎不同。
$ shift
shift: shift count must be <= $#
Run Code Online (Sandbox Code Playgroud)
$ shift
# OK here
Run Code Online (Sandbox Code Playgroud)
命令与and不shift
兼容吗?我怎样才能让脚本运行?zsh
bash
zsh
shift
当 的参数大于位置参数的数量(即)时,两个 shell 都将其视为错误$#
。
由于shift
没有参数实际上与 相同shift 1
,因此当没有位置参数时,它会导致错误并返回非零退出值。
唯一的区别是zsh 会在发生这种情况时打印错误消息,而bash不会。
$ set --
$ shift
$ echo $?
1
Run Code Online (Sandbox Code Playgroud)
$ set --
$ shift
shift: shift count must be <= $#
$ echo $?
1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1708 次 |
最近记录: |