Wie kann ich ein Sourcing-Skript in bash aussetzen?

497
Tgr

Wenn ich einen Prozess in Bash starte, kann ich ihn mit Ctrl-Z aussetzen, aber das scheint für Sourcing-Skripts ( . foo.sh) nicht zu funktionieren . Gibt es eine Möglichkeit, solche Skripts auszusetzen?

1

1 Antwort auf die Frage

1
RedGrittyBrick

Wenn Sie foo.sh als Quelle verwenden, stoppt Strg + Z (SUSP) einfach den aktuell ausgeführten Befehl in foo.sh und die Shell fährt munter mit dem nächsten Befehl in foo.sh fort.

Ich glaube nicht, dass es einen Ausweg gibt. Wenn Sie foo.sh vollständig aussetzen möchten, müssen Sie es als Unterprozess ausführen, indem Sie es als Befehl aufrufen und nicht als Quelle verwenden.

Strg-Z setzt einen ** Prozess ** mit SIGSTOP aus. Sourced-Skripts werden im Main-Shell-Prozess ausgeführt und können nicht als Einheit angehalten werden. grawity vor 12 Jahren 0