Каковы цели и варианты использования «$ {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 
  • Почему расширение файла работает для имен файлов с символом новой строки?
  • Как написать небольшой журнал с bash?
  • Псевдоним CD в каталоге и вызов команды
  • Как восстановить предыдущую историю и предыдущую историю в Bash?
  • Расширение шаблона bash прекращается через некоторое время
  • Попытка получить конкретную информацию из массива
  • Bash: повторить последние команды N
  • dirname недействительный параметр `b`
  • Используйте цикл, чтобы найти количество файлов в вашем текущем каталоге
  • BASH: запустить фоновый процесс и проверить, когда он заканчивается
  • Как я могу скрыть вывод командной строки в окне терминала?
  • Interesting Posts

    tune2fs: какой часовой пояс – это дата, в которой она создана, и можно ли ее изменить?

    Как проверить, имеет ли диск linux внутри

    Измените все права доступа к папке с помощью команды 1

    Неожиданный результат при использовании аргументов командной строки для поиска файла с символом

    Фильтрация или обтекание определенных разделов файла

    Устройство чтения карт RTS5129 с Ubuntu 15.10

    Как заставить CLI работать на выделенной графике?

    Как исправить глобальные ярлыки, когда они перестают работать в KDE?

    понять варианты «уведомлять-отправить»,

    Получите 100 номеров палиндрома

    отключить apt-listchanges (и другие интерактивные материалы) во время обновлений (надежно)

    Относительно отдельного файла в несколько файлов в соответствии с разделом строк

    Получить идентификатор PID любой команды в последовательности команд из последовательности команд

    Сравнение и расширение брекетов

    Как использовать команду watch с цепочкой команд / программ с каналами

    Linux и Unix - лучшая ОС в мире.