在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主义。等价的是什么?
答案 0 :(得分:3)
${name:offset}
是一种bash
主义,但是您可以根据需要使用POSIX shift
命令。
$ butlast() { shift; echo "$@"; }
$ butlast foo bar baz
bar baz