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 -e
oder 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-emulator
startet nicht automatisch eine Shell. Mit dieser -e
Option können nur ausführbare Dateien gestartet werden.
Obwohl echo
als ausführbare Datei ( /bin/echo
) verfügbar ist, schlägt read
ein 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. bash
bash
read
So funktioniert es:
x-terminal-emulator -e "bash -c 'echo $PATH; read'"
Nun x-terminal-emulator
startet eine bash
Shell, die dann ausführt echo $PATH; read
. Da echo
und speziell jetzt als interne Befehle read
verfügbar sind , wird der Befehl nicht abgebrochen und wartet auf eine Eingabe, wodurch das Fenster geöffnet bleibt, bis eine Taste gedrückt wird.bash
read