
Wie weise ich in bash
(und ) der Variablen am präzisesten den Wert von zu , wenn angegeben ist, und andernfalls einen Standardwert ?zsh
$1
w
$1
4
Ich habe es versucht
w=$(( $1 != "" ? $1 : 4))
aber das hat eine Fehlermeldung zurückgegeben.
Gibt es etwas Einfacheres als
w=4; [[ $1 != "" ]] && w=$1
Antwort1
Verwenden Sie eine Parametererweiterung der Form${parameter:-word}
${parameter:-word}
Standardwerte verwenden. Wenn der Parameter nicht gesetzt oder null ist, wird die Worterweiterung ersetzt. Andernfalls wird der Wert des Parameters ersetzt.
w=${1:-4}
Das Weglassen des Doppelpunkts führt nur zu einem Test für einen Parameter, der nicht gesetzt ist.
w=${1-4}