Как управлять всеми параметрами сценария оболочки сразу?

Хотя для конечного количества параметров можно явно сделать что-то вроде

wrapped_function "${1#prefix}" "${2#prefix}" "${3#prefix}" # etc., 

нет ли более простого способа сразу манипулировать всеми параметрами?

One Solution collect form web for “Как управлять всеми параметрами сценария оболочки сразу?”

Конечно, есть,

 wrapped_function "${@#prefix}" 

$@ Представляет совокупность всех параметров $1 , $2 , … (см. Здесь ) в отдельных котировках, т.е. в основном

 $@="\"$1\" \"$2\" \"$3\" ..." 

однако bash применяет переменные манипуляции индивидуально по каждому параметру, т. е.

 ${@#prefix}="\"${1#prefix}\" \"${2#prefix}\" ..." 

Синтаксис ${VAR#prefix} означает, что если $VAR начинается с prefix , удалите его, например

 TEST="/tmp/var/bin"; echo ${TEST#/tmp} # yields "/var/bin" 

Аналогично, для удаления суффикса можно использовать % вместо # .

  • использовать find для поиска, перемещения и ссылки на дерево каталогов, сопоставляющее {1,10} / *
  • Количество элементов в массиве bash, где имя массива является динамическим (т.е. хранится в переменной)
  • как обрабатывать путь ($ 1)
  • Кажется, что расширение параметра отсутствует
  • Имеет ли параметр порядок значение с tar?
  • Преобразование позиционных аргументов сценария оболочки
  • Почему POSIX Find Parameters отличается от других стилей программы?
  • Можно ли использовать переменные параметров оболочки ($ 1, ..., $ @) непосредственно в CLI?
  • Как назначить значение входной переменной в оболочке
  • Как безопасно передавать переменные в сценарии с поддержкой root?
  • Как отключить позиционные параметры?
  • Linux и Unix - лучшая ОС в мире.