Kann ein shell-Skript, das setzen von Umgebungsvariablen der aufrufenden shell?

Ich bin versucht zu schreiben Sie ein shell-Skript, dass, wenn Sie ausgeführt wird, werden einige Umgebungsvariablen setzen, die bleiben werden, legen Sie in die aufrufende shell.

setenv FOO foo

in csh/tcsh, oder

export FOO=foo

in sh/bash nur setzen Sie es während der Skript - Ausführung.

Weiß ich schon, dass

source myscript

wird, führen Sie die Befehle aus der Skript eher als den Start einer neuen shell, und können dazu führen, dass die Einstellung des "Anrufers" - Umgebung.

Aber hier ist der Haken:

Möchte ich dieses script aufrufbar sein, entweder bash oder csh. In anderen Worten, ich möchte die Benutzer entweder die shell ausführen zu können, mein Skript und shell haben, der die Umgebung verändert. So 'Quelle' nicht für mich arbeiten, da ein Benutzer, der csh nicht Quelle ein bash-Skript, und ein Benutzer, der bash kann nicht Quelle ein csh-Skript.

Gibt es irgendeine vernünftige Lösung, die nicht beinhalten, die zum schreiben und pflegen von ZWEI Versionen auf dem Skript?

InformationsquelleAutor der Frage Larry Gritz | 2009-01-30

Schreibe einen Kommentar