请教一下,一个脚本怎样能同时运行在bash和tcsh上?

cjn_xaut 2018-10-23 10:48:29
需要在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下都可以正确执行

不知道该如何解决。请各位大神指点一下,万分感谢:)
...全文
122 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧