我想编写一个Bash脚本,它执行另一个Bash脚本,并且除了第一个参数外,其他所有参数都要传递进去。因此,我不能使用以下方式:
``` bash abc.sh "$@" ```
因为这样会传递第一个参数,而我不想要。那么该如何删除第一个参数呢?
``` bash abc.sh "$@" ```
因为这样会传递第一个参数,而我不想要。那么该如何删除第一个参数呢?
你可以使用shift
删除第一个参数:
shift #same as: shift 1
bash abc.sh "$@"
(在bash
、ksh
和zsh
中,您还可以使用"${@:2}"
而不修改"$@"
数组,但shift
将在任何POSIX shell中起作用。)
dash
不喜欢那种表示法。 - user541686