Em bash
(e zsh
), como atribuo de forma mais concisa o valor de $1
à variável w
, se $1
for fornecido, e caso contrário, um valor padrão 4
?
tentei
w=$(( $1 != "" ? $1 : 4))
mas isso retornou uma mensagem de erro.
Existe algo mais simples do que
w=4; [[ $1 != "" ]] && w=$1
Responder1
Use uma expansão de parâmetro do formulário${parameter:-word}
${parameter:-word}
Use valores padrão. Se o parâmetro não estiver definido ou for nulo, a expansão da palavra será substituída. Caso contrário, o valor do parâmetro é substituído.
w=${1:-4}
A omissão dos dois pontos resulta em um teste apenas para um parâmetro que não está definido.
w=${1-4}