Erwägen:
gnome-terminal -x sleep 10m --version
gnome-terminal -e 'sleep 10m' --version
Im ersten Beispiel wird alles danach -x
für den auszuführenden Befehl verwendet. Das GNOME-Terminal wird also sleep 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:
gnome-terminal -x bash -c 'command 1; command 2; ...'
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:
gnome-terminal -e "bash -c 'command 1 $foo; command 2; ...'"
Hier $foo
wird durch die aktuelle Shell erweitert.
gnome-terminal -e 'bash -c "command 1 | awk '\''{print $NF}'\''"'
Die Verwendung '
innerhalb der Befehlszeichenfolge ist mit lästigen Anführungszeichen verbunden.