переменная по умолчанию в bash 3 или bash 4

Базовая проверка строки не должна быть такой уж сложной:
echo "INBOUND_PATH|/tmp" | grep -q '^INBOUND_PATH|.*$'

Я полагаю, вы имели в виду, что второй должен быть sed, а не grep:
g_inboundDir=$(echo "INBOUND_PATH|/tmp" | sed 's/^\(INBOUND_PATH\)|\(.*$\)/\2/')

Обратите внимание на отсутствие -E. Я также исправил отсутствующий трейлинг /.

0
12.07.2019, 17:13
1 ответ

Конструкция ${variable-alternate value}использует альтернативное значение, если переменная установлена, но не если для нее задана пустая строка (, то есть пустая ). Если вы хотите использовать альтернативное значение, если переменная не установлена ​​ИЛИ установлена ​​​​в пустую строку, используйте ${variable:-alternate value}(, обратите внимание на двоеточие )вместо:

local v="${name:-$tag}"
3
28.01.2020, 02:22

Теги

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