Wie ist die Befehlsstruktur zum Öffnen eines neuen Terminals und zum Ausführen des angegebenen Befehlssatzes auf diesem neuen Terminal?

Wie ist die Befehlsstruktur zum Öffnen eines neuen Terminals und zum Ausführen des angegebenen Befehlssatzes auf diesem neuen Terminal?

Ich verwende Linux Mint 19.03

Zunächst einmal kann ich Ihnen versichern, dass ich die meisten möglichen Fragen gelesen habe, von denen Sie vielleicht denken, dass es sich bei meiner Frage um eine Kopie handelt.

Jetzt möchte ich im Grunde etwas in mein Terminalfenster eingeben, um ein neues Terminalfenster zu öffnen und die Befehle auszuführen.

Etwas wie das:

[the part I am asking of] "echo $PATH; read"

Dieser Code sollte ein neues Terminal öffnen, die Variable $PATH sollte angezeigt werden und das Lesen dient nur zum Anhalten des Terminals.

Ich habe es versucht  x-terminal-emulator -eoder  x-terminal-emulator -c oder  -x , aber ich habe es nie richtig hinbekommen. Alle Antworten auf diesem SE zu ähnlichen Fragen sind beide alte Antworten und verwendeten -e oder -x, aber es heißt, dass diese Optionen veraltet sind.

Was ist also der beste Weg, dies zu erreichen?

Danke.

Antwort1

x-terminal-emulatorstartet nicht automatisch eine Shell. Mit dieser -eOption können nur ausführbare Dateien gestartet werden.

Obwohl echoals ausführbare Datei ( /bin/echo) verfügbar ist, schlägt readein interner Befehl ohne fehl . Daher erfolgt die Ausgabe im neuen Fenster schneller als das Öffnen des Fensters und wenn fehlschlägt, wird das Fenster geschlossen, bevor Sie es sehen. bashbashread

So funktioniert es:

x-terminal-emulator -e "bash -c 'echo $PATH; read'"

Nun x-terminal-emulatorstartet eine bashShell, die dann ausführt echo $PATH; read. Da echound speziell jetzt als interne Befehle readverfügbar sind , wird der Befehl nicht abgebrochen und wartet auf eine Eingabe, wodurch das Fenster geöffnet bleibt, bis eine Taste gedrückt wird.bashread

verwandte Informationen