shell脚本可以设置调用shell的环境变量吗?
我正在尝试编写一个shell脚本,在运行时,它将设置一些环境变量,这些变量将留在调用者的shell中。
setenv FOO foo
在CSH/tcsh中,或
export FOO=foo
在sh/bash中,只在脚本执行期间设置它。
我已经知道了
source myscript
将运行脚本的命令,而不是启动新的shell,这可能导致设置“调用者的”环境。
但问题是:
我希望这个脚本可以从bash或csh调用。换句话说,我希望任何一个shell的用户能够运行我的脚本并更改他们的shell环境。因此,“Source”对我不起作用,因为运行CSH的用户无法获取bash脚本,而运行bash的用户无法获取CSH脚本。
是否有任何合理的解决方案不需要在脚本上编写和维护两个版本?