Как я могу пропустить первый аргумент в функции оболочки ash / dash? - PullRequest
0 голосов
/ 26 марта 2019

В функции пепла / тире я могу обратиться к полному списку параметров следующим образом:

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

Мне не удалось найти синтаксис двоеточия в на странице справки для пепла, так что это может быть ошибкой. Что эквивалентно?

1 Ответ

3 голосов
/ 26 марта 2019

${name:offset} - это bash ism, но вы можете использовать команду POSIX shift для того, что вы хотите.

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