Каковы цели и варианты использования «$ {parameter: + word}»?

Из руководства Bash

${parameter:+word} 

Если параметр имеет значение null или не задан, ничто не заменяется, иначе заменяется слово.

Это похоже на замену строк только тогда, когда целевая строка в «параметре» существует и не равна нулю.

Каковы цели и варианты использования такого расширения параметров?

Благодарю.

One Solution collect form web for “Каковы цели и варианты использования «$ {parameter: + word}»?”

Вы можете использовать это с переменной флага, например, чтобы добавить некоторый флаг в командную строку:

 use_x=1 param_x=foobar somecmd ${use_x:+-x} ${use_x:+$param_x} 

Конечно, часть с param_x не такая хорошая идея, поскольку она подвержена разбиению и глобализации слов. Однако это не должно быть проблемой для самого статического флага, но в целом использование массива здесь будет более надежным.

Чтобы проверить, установлена ​​ли переменная, [ -n "$var" ] работает аналогично, поэтому для ${var:+value} не так много пользы. С другой стороны, ${var+value} (без двоеточия) полезно рассказать о разнице между пустой и неустановленной переменной:

 unset a b= [ "${a+x}" = "x" ] && echo a is set [ "${b+x}" = "x" ] && echo b is set 
  • Как сделать ярлык ESCAPE + «_» в bash?
  • Как сохранить строку «*» в переменной в unix / bash?
  • Bash: повторить последние команды N
  • Отключить кэш исполняемого файла bash в пути
  • как получить доступ к следующему аргументу параметров командной строки в bash?
  • Команда Bash для источника файла в другом каталоге?
  • Значение «: -» в bash
  • bash ] поведение
  • Как получить новую строку перед вызовом bash?
  • Преобразование всех первых символов в идентификатор электронной почты в верхний регистр в BASH
  • Каков самый короткий способ выбрать первый доступный порт в определенном диапазоне с помощью Bash?
  • Linux и Unix - лучшая ОС в мире.