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

问题描述 投票:0回答:1

在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为灰结肠语法,所以这可能是一个庆典主义。相当于什么?

shell hyphen ash
1个回答
3
投票

${name:offset}是一个bashism,但你可以使用POSIX shift命令你想要的。

$ butlast() { shift; echo "$@"; }
$ butlast foo bar baz
bar baz
© www.soinside.com 2019 - 2024. All rights reserved.