Ich möchte eine Bash-Subshell ausführen, (1) einige Befehle ausführen, (2) und dann in dieser Subshell bleiben, um zu tun, was ich möchte. Ich kann jedes von diesen einzeln tun:
Befehl mit
-c
Flag ausführen:$> bash -c "ls; pwd; <other commands...>"
Es kehrt jedoch sofort zur "super" Shell zurück, nachdem die Befehle ausgeführt wurden. Ich kann auch einfach eine interaktive Subshell ausführen:
Neuen
bash
Prozess starten :$> bash
und es wird die Subshell nicht verlassen, bis ich es explizit sage ... aber ich kann keine anfänglichen Befehle ausführen. Die nächste Lösung, die ich gefunden habe, ist:
$> bash -c "ls; pwd; <other commands>; exec bash"
Das funktioniert, aber nicht so, wie ich es wollte, da es die angegebenen Befehle in einer Subshell ausführt und dann eine separate für die Interaktion öffnet.
Ich möchte dies in einer einzigen Zeile tun. Sobald ich die Subshell verlasse, sollte ich ohne Zwischenfälle zur regulären "Super" -Shell zurückkehren. Es muss einen Weg geben ~~
NB: Was ich nicht frage ...
- Ich fragte nicht, wo ich die Bash-Manpage finden sollte
- Ich frage nicht, wie man Initialisierungsbefehle aus einer Datei liest ... Ich weiß, wie man das macht, es ist nicht die Lösung, nach der ich suche
- nicht daran interessiert, tmux oder gnu screen zu benutzen
- nicht daran interessiert, Kontext zu geben. Das heißt, die Frage soll allgemein und nicht für einen bestimmten Zweck sein
- Wenn möglich, möchte ich vermeiden, Problemumgehungen zu verwenden, die das erreichen, was ich will, aber auf "schmutzige" Weise. Ich möchte dies nur in einer einzigen Zeile tun. Insbesondere möchte ich so etwas nicht tun
xterm -e 'ls'
exec bash
Lösung umfasst auch zwei separate Unterschalen. Ich möchte eine durchgehende Unterschale.
exec
ist , dass es ersetzt die erste Sub - Shell mit dem zweiten, so dass Sie nur links 1 Schale unter dem Elternteil. Wenn Ihre Initialisierungsbefehle Umgebungsvariablen festlegen, sind diese in der ausgeführten Shell vorhanden.
exec
ist, dass Sie alles verlieren, was nicht über die Umgebung an Subshells weitergegeben wird, wie nicht exportierte Variablen, Funktionen, Aliase, ...
exec bash
Lösung für Sie ungeeignet?