En bash
(y zsh
), ¿cómo asigno de manera más concisa el valor de $1
a la variable w
, si $1
se proporciona, y en caso contrario, un valor predeterminado 4
?
Lo intenté
w=$(( $1 != "" ? $1 : 4))
pero eso devolvió un mensaje de error.
¿Hay algo más sencillo que
w=4; [[ $1 != "" ]] && w=$1
Respuesta1
Utilice una expansión de parámetros del formulario.${parameter:-word}
${parameter:-word}
Utilice valores predeterminados. Si el parámetro no está establecido o es nulo, se sustituye la expansión de la palabra. De lo contrario, se sustituye el valor del parámetro.
w=${1:-4}
Omitir los dos puntos da como resultado una prueba solo para un parámetro que no está configurado.
w=${1-4}