Zefram hat eine ähnliche Frage auf der zsh-Mailingliste vor über 20 Jahren beantwortet :
Die Lösung ist die Verwendung einer Funktion - nennen wir sie source_bash
-, um Ihr Bash-Skript zu erzeugen:
function source_bash { emulate -L bash builtin source "$@" }
Der Trick ist die Option localoptions
, die in der Manpage wie folgt beschrieben wird:
LOCAL_OPTIONS Wenn diese Option am Rückkehrpunkt einer Shell-Funktion festgelegt ist, werden die meisten Optionen (einschließlich dieser), die beim Eintritt in die Funktion gültig waren, wiederhergestellt. Optionen, die nicht wiederhergestellt werden, sind PRIVILEGED und RESTRICTED. Andernfalls werden nur diese Option und die Optionen LOCAL_LOOPS, XTRACE und PRINT_EXIT_VALUE wiederhergestellt. Wenn dies durch eine Shell-Funktion explizit aufgehoben wird, bleiben die anderen am Rückgabepunkt gültigen Optionen erhalten. Eine Shell-Funktion kann sich auch eine bekannte Shell-Konfiguration mit einer Formulierung wie "emulate -L zsh" garantieren. Das -L aktiviert LOCAL_OPTIONS.
Setzen Sie diese Funktion auf Ihre ~/.zshrc
und Sie müssen nur noch eine
$ source_bash setupscipt.bash
wenn nötig.