webentwicklung-frage-antwort-db.com.de

Wie kann ich eine zusätzliche Konsole öffnen und mit einem Befehl ein Programm ausführen?

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?

1
J.R.

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" 
  • Wenn Sie das Home-Verzeichnis des Benutzers mit dem obigen Befehl erreichen möchten, verwenden Sie die Umgebungsvariable $HOME: bash -c "cd $HOME/; ..."

Weitere Beispiele für die Verwendung dieses Formats:

3
pa4080

gnome-terminal -e cmd öffnet ein Terminalfenster und führt darin cmd aus.

0
John Anderson

Sie können es einfach tun CTRLALTT und Sie werden ein neues Terminal öffnen.

Versuchen Sie gnome-terminal -e "bash -c command;bash"

0
lapisdecor

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.

0
John Anderson