请教一下,一个脚本怎样能同时运行在bash和tcsh上?
需要在bash和tcsh两个环境下设置环境变量,
1、
因为bash和tcsh的语法不同,为了规避差异,这样写在脚本tmp.sh里:
`echo $SHELL | sed 's/\/bin\/bash/export LD_LIBRARY_PATH=$PWD\/x86_64\/:$LD_LIBRARY_PATH/;t;s/\/bin\/tcsh/setenv LD_LIBRARY_PATH $PWD\/x86_64\/:$LD_LIBRARY_PATH/'`
在csh下,执行脚本source tmp.sh,setenv: Command not found;
2、
但是若脚本里直接写为:
setenv LD_LIBRARY_PATH $PWD/x86_64/:$LD_LIBRARY_PATH
source脚本没有问题。
3、
另外,我试了一下,如果把命令换为ls命令,source脚本是可以的,例如:
`echo $SHELL | sed 's/\/bin\/bash/export LD_LIBRARY_PATH=$PWD\/x86_64\/:$LD_LIBRARY_PATH/;t;s/\/bin\/tcsh/ls -al/'`
4、以上的写法在bash下都可以正确执行
不知道该如何解决。请各位大神指点一下,万分感谢:)