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

Я предполагаю, что Вы говорите о FreeBSD - от человека ls:

 -o      Include the file flags in a long (-l) output.

Так ls -lo должен перечислить все флаги файла на FreeBSD.

2
12.11.2013, 13:23
1 ответ

Уверенный существует,

wrapped_function "${@#prefix}"

$@ представляет набор всех параметров $1, $2... (см. здесь) в отдельных кавычках, т.е. в основном

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

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

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

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

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

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

6
27.01.2020, 21:54
  • 1
    Возможно, Вы могли объяснить это немного больше с примером, показывающим, что это работает? –  slm♦ 12.11.2013, 16:43
  • 2
    @slm Voilà, я забывал что-то? –  Tobias Kienzler 12.11.2013, 17:05
  • 3
    Спасибо Tobias, намного более хороший теперь!!! Если Вы чувствуете себя подобно ему, Вы могли бы хотеть показать префикс, я держал пари, что большинство людей не будет grok, что Вы подразумеваете под ним. Я поместил пример, где Вы повторяете результаты ${$#prefix} именно так это совершенно прозрачно другому прохожему. –  slm♦ 12.11.2013, 17:19
  • 4
    @slm Правда, который не повредит ни один –  Tobias Kienzler 12.11.2013, 17:42

Теги

Похожие вопросы