osx-Shell wird nach der Verwendung beendet

osx-Shell wird nach der Verwendung beendet

Ich habe ein Shell-Skript, das das Verzeichnis wechselt und dann ausgeführt wird. Ich möchte, dass der Verzeichniswechsel nach Beendigung des Skripts an die Eingabeaufforderung weitergeleitet wird.

Also führe ich es mit aus:

. script

Wenn das Skript jetzt jedoch beendet wird, wird das gesamte Fenster beendet. Gibt es eine Möglichkeit, dies zu beheben?

Meine Shell ist Bash.

Antwort1

Es gibt zwei Möglichkeiten, dies auf dem Mac zu beheben

A> Gehen Sie zu Ihren Terminaleinstellungen, wählen Sie [Allgemein] und deaktivieren Sie das Kontrollkästchen „Fenster schließen, wenn Shell sauber beendet wird“.

B> Richten Sie Ihren bevorzugten Texteditor auf ~/Library/Preferences/com.apple.Terminal.plist

Suchen Sie die Zeilen:

<Taste>ShellExitAction</Taste>
< Ganzzahl>1< / Ganzzahl>

ändern Sie die 1 in eine 2 und starten Sie die Terminal-App neu.

B ist im Grunde dasselbe wie A, wird aber manuell durchgeführt.

Antwort2

Enthält es scripteine exitAnweisung? Denken Sie daran, dass Punkt (Sourcing) Ihren Code in der aktuellen Shell ausführt. Wenn es also ein hat exit, wird Ihre aktuelle Shell beendet. Sie sollten das Skript überprüfen und alle exitin ändern return.

Sie können möglicherweise erkennen, ob die Quelle (wo Sie möchten return) und die Ausführung (wo Sie möchten exit) vorhanden ist.

[[ $BASH_SOURCE != $0 ]] && echo 'running sourced ...'

verwandte Informationen