В функции 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
Мне не удалось найти синтаксис двоеточия в справочной странице для ash, поэтому это может быть башизмом. Что такое эквивалент?
ash
применяет:
к одной строке, сформированной из позиционных аргументов, а не к массиву аргументов. Не уверен, что это ошибка или ожидаемое (но недокументированное) поведение. Вdash
это просто плохая ошибка замены. - person chepner   schedule 26.03.2019