如何跳过ash / dash shell函数中的第一个参数?

时间:2019-03-26 15:14:40

标签: shell hyphen ash

在ash / dash函数中,我可以像这样参考完整的参数列表:

allparameters() { echo "$@"; }

哪个给我:

$ allparameters yyyyy abffcd efgh
yyyyy abffcd efgh

我想跳过yyyyy,所以尝试了${@:2}

butlast() { echo "${@:2}"; }

但是,这会跳过前两个字符:

$ butlast yyyyy abffcd efgh
yyy abffcd efgh
$ butlast abffcd efgh
ffcd efgh

我无法在the man page中找到灰分的冒号语法,所以这可能是一种bash主义。等价的是什么?

1 个答案:

答案 0 :(得分:3)

${name:offset}是一种bash主义,但是您可以根据需要使用POSIX shift命令。

$ butlast() { shift; echo "$@"; }
$ butlast foo bar baz
bar baz