Manpages geben an:
-e, --command=STRING
Execute the argument to this option inside the terminal.
-x, --execute
Execute the remainder of the command line inside the terminal.
Worauf bezieht sich die "Befehlszeile" im zweiten Beispiel? Und was ist sein "Rest"? Könnten Sie bitte ein Beispiel geben, in dem sich diese beiden Optionen unterscheiden? Oder sind sie im Grunde gleich?
command-line
gnome-terminal
Stackzebra
quelle
quelle
Antworten:
Erwägen:
Im ersten Beispiel wird alles danach
-x
für den auszuführenden Befehl verwendet. Das GNOME-Terminal wird alsosleep 10m --version
als Befehl ausgeführt.--version
In diesem Fall wird es Teil des Befehls, der vom GNOME-Terminal ausgeführt wird.Im zweiten Fall wird nur das einzelne Zeichenfolgenargument to
-e
als Befehl verwendet, sonst nichts. Also--version
hier ist tatsächlich eine Option , um GNOME - Terminal.Die erste kann nützlicher sein, wenn Sie eine Befehlskette ausführen möchten:
Dies ist schwierig zu handhaben
-e
, da der gesamte Befehl eine einzelne Zeichenfolge sein muss, sodass Sie das Ganze zitieren müssen. Dies bedeutet wiederum, dass Sie bei Anführungszeichen und Variablenerweiterungen und dergleichen vorsichtiger sein müssen:Hier
$foo
wird durch die aktuelle Shell erweitert.Die Verwendung
'
innerhalb der Befehlszeichenfolge ist mit lästigen Anführungszeichen verbunden.quelle