Bedingte Zuweisungen in Bash

Bedingte Zuweisungen in Bash

Wie weise ich in bash(und ) der Variablen am präzisesten den Wert von zu , wenn angegeben ist, und andernfalls einen Standardwert ?zsh$1w$14

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}

verwandte Informationen