So öffnen Sie ein Terminal vom Terminal aus


7

Ich bin auf Ubuntu 12.04 und verwende das Gnome-Terminal als Standard-Terminal. Ich muss ein anderes Terminal über die Befehlszeile öffnen. Ich weiß, dass ich dies mit gnome-terminal tun kann, aber ich möchte einen Befehl ausführen, der immer das Standardterminal öffnet, damit mein Skript auf anderen Distributionen ausgeführt werden kann, auch auf solchen, die gnome nicht verwenden.

EDIT: Ich möchte ein Bash-Skript, das das Terminal öffnet.


Bitte klären Sie Ihre Frage mit Einzelheiten. Welche Art von Skript führen Sie aus und auf welcher Shell (Terminal) möchten Sie die Skripte ausführen? Geben Sie uns einen Anwendungsfall, so wie mein Shell-Skript dies ist und ich es in cshoder zshoderbash
Web-E

Antworten:


9

xterm ist standardmäßig auf fast allen Linux-Distributionen verfügbar, wenn ich mich richtig erinnere.

Sie können also einen Befehl darin ausführen, abhängig von der Shell, in die das Skript mit so etwas geschrieben wurde (das Beispiel ist für ein Bash-Shell-Skript).

xterm -e "sh script.sh"

Es wird ein neues Shell-Fenster erzeugt und Ihr Skript ausgeführt.


Nur um zu wissen, dass es keine Systemvariable oder ähnliches gibt, die das Standardterminal auf dem System aufruft?
Topo

4
echo $TERMsagt Ihnen den Namen, während es $TERMstartet. Meistens ist es xterm:)
Nitin Venkatesh

2

Entsprechend der Antwort auf diese Frage Wie kann ich das in Unity verwendete Standardterminal festlegen? Ich würde es wie folgt schreiben:

 eval "$(gsettings get org.gnome.desktop.default-applications.terminal exec)"

Wenn Sie ein Programm innerhalb des Terminals starten möchten, gibt es auch die Eigenschaft 'exec-arg', die das Argument angibt, das erforderlich ist, um etwas im Terminal von diesem bestimmten Terminal auszuführen. Zum Beispiel, wenn Sie ein 'tail -f / var / log / messages' ausführen möchten:

CMD='tail -f /var/log/messages'
eval "$(gsettings get org.gnome.desktop.default-applications.terminal exec) $(gsettings get org.gnome.desktop.default-applications.terminal exec exec-arg) \$CMD"

Das 'eval' wird verwendet, weil 'gsettings' den Befehl und das Argument in einfachen Anführungszeichen zurückgibt. Dies wäre dann eine generische Lösung für alle Desktops, auf denen GNOME / Unity ausgeführt wird.


0

Möglicherweise möchten Sie entweder diese Tastenkombination verwenden, CTRL + SHIFT + Tdie eine andere Registerkarte im selben Terminalfenster öffnet, oder Sie möchten diese verwenden: Sie CTRL + ALT + Töffnet ein anderes Terminalfenster (ohne das aktuell verwendete zu schließen).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.