我需要编写一个脚本,使用setenv或export来设置变量,具体取决于shell(bash,csh)
离
my_shell=`ps -p $$ | grep $$ | awk '{print $4}'`
if [ "$my_shell" = "bash" ]
then
export x=1
else
setenv x 1
fi
我知道csh和bash对于of语句有不同的语法,但有没有办法解决这个问题
谢谢
答案 0 :(得分:0)
不,但有一个可能有帮助的技巧。
首先用shell的语法编写脚本。我在这里使用csh:
setenv x 1
现在你可以这样做:
csh -c 'source setup-env.csh;exec bash'
(source)
这将创建具有正确环境的C shell。在此shell中启动BASH会将所有环境变量导出到它。
或者,您可以在BASH中创建一个函数setenv
:
setenv() {
echo setting $1 to $2
export $1=$2
}
当然,这只适用于简单的csh脚本。