Я проверяю скрипт bash, который содержит что-то вроде: export PATH = $ {PATH:+$ PATH:}/usr/bin Я предполагаю, что он имеет тот же вывод, что и export PATH=$PATH:/usr/bin . Я сделал echo ${PATH:+$PATH:} он просто вывел значение $ PATH плюс ':'. но если я изменю его на $ {PSOMETHING:+$ PATH:}, он ничего не выдаст.

мой вопрос, в чем разница между использованием $ PATH: и $ {PATH:+$ PATH:}? какая-то выгода? как понять синтаксис?

1 ответ1

5

Смотрите Расширение параметров в man bash:

${parameter:+word}

Используйте альтернативное значение. Если параметр равен нулю или не задан, ничто не подставляется, в противном случае подставляется расширение слова.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .