Bash-Unterschied zwischen optionalen Parametern mit dem Gleichheitszeichen „--stuff=42“ oder nicht „--stuff 42“

Bash-Unterschied zwischen optionalen Parametern mit dem Gleichheitszeichen „--stuff=42“ oder nicht „--stuff 42“

Ich sehe oft Befehle, die den Wert eines optionalen Parameters mit = und manchmal mit einem einfachen Leerzeichen festlegen. Wie heißt das?

Beispiel für beide Befehle, die funktionieren:

firewall-cmd --permanent --add-service=http

Und

firewall-cmd --permanent --add-service http

Was ist der Unterschied zwischen der Verwendung des Gleichheitszeichens und nicht?

Antwort1

Ich weiß nicht, ob es dafür einen offiziellen Namen gibt. Normalerweise nenne ich es --foo=bar"explizit" und --foo bar"implizit", denn im letzteren Fall müsste man wissen, wie es implementiert ist, um zu sagen, ob es "setze dieZeichenfolgenoption fooauf 'Bar'" oder "Setzen Sie dieBoolesche Option foound trueübergeben Sie dieStreit'Bar'".

Gemäß dem sehr sinnvollen Python-Sprichwort „explizit ist besser als implizit“ bevorzuge ich immer --foo=bar.

verwandte Informationen