Was ist die Fischschale , die der folgenden Bash entspricht:
echo ${TEST:-1}
In der Bash würde dies den Wert von TEST ausgeben, wenn es einen gab, oder 1, wenn es keinen gab.
Was ist die Fischschale , die der folgenden Bash entspricht:
echo ${TEST:-1}
In der Bash würde dies den Wert von TEST ausgeben, wenn es einen gab, oder 1, wenn es keinen gab.
Antworten:
Ich glaube, Sie brauchen eine temporäre Variable (oder eine Funktion). Wenn
$TEST
nicht vorhanden, wird es zu nichts erweitert und$test_or
enthält nur1
. Es wäre schön, eine echte Möglichkeit zu haben, aber derzeit ist die Syntax ein Problem, und es scheint, dass sie für die meisten Zwecke nicht wirklich benötigt wird.Wenn Sie lediglich Änderungen vornehmen möchten,
$TEST
sofern dies noch nicht geschehen ist, können Sie diese verwendenset -q
.quelle
Um auf eine Variable zu verweisen und einen Standardwert in der Zeile bereitzustellen, können Sie eine Befehlsersetzung verwenden, die eine Bedingung enthält, die
echo
für beide Zweige gilt.Da dies sehr ausführlich ist, können Sie die Variable in einer anderen Zeile initialisieren, wenn sie nicht gesetzt ist.
Wenn Sie wirklich die Möglichkeit haben möchten, eine Standard-Inline zu ersetzen, können Sie dies in einer Funktion unter Verwendung der Indirektion tun und diese Funktion dann aufrufen.
quelle