Я пытаюсь написать оболочку script, которая при запуске установит некоторые переменные среды, которые останутся установленными в оболочке вызывающего.
setenv FOO foo
в csh/tcsh или
export FOO=foo
в sh/ bash устанавливает его только во время выполнения script.
Я уже знаю, что
source myscript
будет запускать команды script, а не запускать новую оболочку, и это может привести к установке среды "вызывающего".
Но здесь rub:
Я хочу, чтобы этот script вызывался из bash или csh. Другими словами, я хочу, чтобы пользователи любой оболочки могли запускать мой script и изменили среду оболочки. Поэтому "source" не будет работать для меня, поскольку пользователь, запускающий csh, не может создать bash script, а пользователь, выполняющий bash, не может создать csh script.
Есть ли разумное решение, которое не связано с необходимостью писать и поддерживать TWO-версии на script?