В bash
(и zsh
) как мне наиболее лаконично присвоить значение $1
переменной w
, если $1
задано, и значение по умолчанию в противном случае 4
?
Я пытался
w=$(( $1 != "" ? $1 : 4))
но это вернуло сообщение об ошибке.
Есть ли что-нибудь проще, чем
w=4; [[ $1 != "" ]] && w=$1
решение1
Используйте расширение параметра в форме${parameter:-word}
${parameter:-word}
Использовать значения по умолчанию. Если параметр не установлен или равен нулю, подставляется расширение слова. В противном случае подставляется значение параметра.
w=${1:-4}
Пропуск двоеточия приводит к проверке только неустановленного параметра.
w=${1-4}