it-swarm.com.de

Bash vom Terminal aus neu starten, ohne die Terminalanwendung (Mac) neu zu starten?

Ich habe mich umgesehen und nach einer Antwort auf diese Frage gesucht, aber ich scheine sie nicht zu finden (was seltsam ist).

Meine Frage ist, gibt es eine einfache Möglichkeit, die Bash-Sitzung vom Terminal auf dem Mac aus neu zu starten. Ich möchte nur das gleiche Verhalten, als ob ich die Terminalanwendung geschlossen und erneut gestartet hätte (alle Variablen zurückgesetzt, .bash_profile bezogen usw.).

Ich weiß, wie man .bash_profile beschafft, aber das will ich nicht. Einer der Gründe, warum ich dies tun möchte, ist, dass ein Plugin für meine Bash-Eingabeaufforderung Code enthält, der verhindert, dass Farben mehrmals geladen werden. Daher lädt das Sourcing von .bash_profile die Farbvariablen nicht neu und ich muss die Terminalanwendung neu starten, damit Änderungen wirksam werden.

49
Mattias

exec bash sollte den aktuellen Shell-Prozess durch (eine neue Instanz von) bash ersetzen.

73
Muzer

Die akzeptierte Antwort ist großartig für eine Shell, die Bash verwendet, was auch vom OP verlangt wurde. Ich verwende jedoch Terminal unter macOS mit einer nicht standardmäßigen Shell (zsh) und führe den Befehl exec bash Offensichtlich nicht aus hat nicht den gewünschten Effekt: Es startet Bash anstelle meiner Standard-Shell.

Der umgebungsunabhängige Befehl wäre also exec $Shell, Der die Umgebungsvariable $Shell Verwendet, in der die Standard-Shell für den Benutzer gespeichert ist.

Beachten Sie außerdem, dass Apple wird bash in macOS Catalina durch zsh ersetzen, damit das OP entweder exec zsh Oder exec $Shell Ausführt der Weg nach dem Update auf macOS 10.15.

4
phip