Wenn dies AS3 oder Java wäre, würde ich Folgendes tun:
%Vor%Aber in der Shell scheint das unnötig kompliziert zu sein und erfordert mehrere Zeilen Code sowie ziemlich viel wiederholten Code.
%Vor%Du könntest das Ganze in eine Zeile komprimieren, aber das opfert die Klarheit immens.
Gibt es eine bessere Möglichkeit, eine inline if
mit Variablenzuweisung in der Shell zu schreiben?
Es gibt keinen bedingten Operator ?:
in der Shell, aber Sie könnten den Code etwas weniger redundant machen:
Oder Sie könnten Ihre eigene Shell-Funktion schreiben, die wie der Operator ?:
funktioniert:
obwohl das wahrscheinlich übertrieben ist (und alle drei Argumente bewertet).
Danke an Gordon Davisson für den Hinweis in Kommentaren, die in $(...)
verschachtelt sind.
Schreiben Sie einfach:
%Vor% Es ist nicht ganz dasselbe wie das, was Sie haben, da useDefault
nicht überprüft wird. Stattdessen wird nur überprüft, ob customName
gesetzt ist. Anstatt useDefault
zu setzen, wenn Sie den Standardwert verwenden möchten, deaktivieren Sie einfach customName
.
Tags und Links bash shell if-statement operators