Аргументы команды Bash ${...}
Я заметил этот тип аргумента команды в скрипте bash:
node ${debug?--nocrankshaft --nolazy --nodead_code_elimination --debug-brk=15454} app.js
Мне интересно что ${....}
средства?
Как это используется?
Кроме того, есть ли хороший источник, который обсуждает все различные варианты команд аргументов для bash?
1 ответ
Здесь вы видите расширение параметров, которое можно рассматривать как набор методов, используемых bash в качестве ярлыков для оценки переменных (или параметров). В этом конкретном случае мы имеем дело со следующей структурой:
${parameter:?word}
Display Error if Null or Unset. If
parameter is null or unset, the expan‐
sion of word (or a message to that
effect if word is not present) is
written to the standard error and the
shell, if it is not interactive,
exits. Otherwise, the value of param‐
eter is substituted.
(взято из человека Баш)
Короче говоря, если переменная не установлена или не существует, выведите ошибку, например, так:
xieerqi:$ echo ${NOTSET?this param not set}
mksh: NOTSET: this param not set
Если установлена переменная, ничего не делать
xieerqi:$ echo ${PWD?this param not set}
/home/xieerqi
В вашем конкретном случае, debug
параметр должен быть передан node
и, если он не установлен, покажите пользователю, какие значения должны быть установлены, а именно --nocrankshaft --nolazy --nodead_code_elimination --debug-brk=15454