Wenn ich also gnome-terminal oder xterm eingebe, wird ein neues Fenster angezeigt. Dann habe ich die Manpage nach diesen beiden durchsucht, nichts Relevantes gefunden.
Dann ist mir aufgefallen, dass man es unter Mac mit geöffnetem Programm machen kann. Aber es scheint unter Linux nicht so trivial zu sein.
Hat jemand Erfahrung?
Ich würde es vorziehen, die Option -x
zu verwenden, die zuverlässiger arbeitet als -e
:
gnome-terminal -x bash -c "<my command or script>; exec bash"
Die Option -x
bedeutet --execute
- der Rest der Befehlszeile innerhalb des Terminals.
Und unser Befehl ist bash -c "<commands>"
. Das heißt, wir führen eine neue bash
Shell aus, die einen -c "<commands>"
ausführen sollte.
Wir haben zwei getrennte (durch Semikolon ; == new line
) <commands>
.
Der erste Befehl <my command or script>
führt das aus, was wir wollen.
Der zweite Befehl exec bash
hat eine Bedeutung - das aktuelle Fenster gnome-terminal
bleibt geöffnet. Es gibt andere mögliche Ansätze um das zu tun. Im aktuellen Fall ersetzt der Befehl exec
das aktuelle Prozessabbild durch ein neues Prozessabbild - mit anderen Worten wird der aktuelle Prozess abgebrochen und ein neu (bash
) unter der aktuellen PID.
Update: Die -x/-e
-Syntax ist jetzt veraltet - Ubuntu 18.04. Der neue empfohlene Weg ist:
gnome-terminal - bash -c "<mein Befehl oder Skript>; exec bash"
$HOME
: bash -c "cd $HOME/; ..."
Weitere Beispiele für die Verwendung dieses Formats:
gnome-terminal -e cmd
öffnet ein Terminalfenster und führt darin cmd
aus.
Sie können es einfach tun CTRLALTT und Sie werden ein neues Terminal öffnen.
Versuchen Sie gnome-terminal -e "bash -c command;bash"
Ein weiterer Ansatz, der das Fenster offen hält, ist die Verwendung von xterm:
xterm -hold -e cmd
Die Hold-Option hält das Fenster offen.