【请教】 bash里调用csh的环境变量
题注:本人乃懒人也,问题跟网络上某位老兄提的问题类似,解决方案的木有,故,请借用那位老兄的描述来征集答案,谢谢!
tool_setup.csh
----------------------------------
#!/bin/csh
set path = (/apps/...../tools/bin $path)
run.bash
----------------------------------
#!/bin/bash
source ./tool_setup.csh
运行 ./run.bash, 总是提示错误, 意思就是bash 中 set path 的语法不对, 可是文件tool_setup.csh中title有写#!/bin/csh
请问这种情况怎么解决, run.bash我还是想用bash写的。谢谢
在网上寻找了两种解决方案,尝试过后均不行,故请高人帮忙,谢谢!
方案1,
csh ./tool_setup.csh
该方法尽管不出错,但无效,tool_setup.csh设置的变量没有进入bash脚本中去;
方案2,
run.bash中写bash命令部分
然后再写个runrun.bash:
#!/bin/bash
csh <(cat ./tool_setup.csh;echo exec ./run.bash)
运行后报错
csh/dev/fd/63:No such file or directory
【求助】 bash里调用csh的环境变量
-
- 帖子: 40
- 注册时间: 2012-01-28 21:27
- josephyoung
- 帖子: 158
- 注册时间: 2011-11-05 18:53
- 来自: 南极圈
Re: 【求助】 bash里调用csh的环境变量
代码: 全选
~ $ cat tool_setup.csh
#!/bin/csh
set path = (/apps/...../tools/bin $path)
echo $path
~ $ cat run.bash
#!/bin/bash
path=`csh ./tool_setup.csh`
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 【求助】 bash里调用csh的环境变量
为什么要去source?如果是执行某个脚本,直接用csh去执行。如果是为了设置当前环境,那应该不止是path一个,最好是重写一下,一般设置环境的脚本也不会很长。当然,你也可再csh脚本末尾用env命令把环境变量全部输出,再在bash脚本中执行这个输出结果,但可能一些不必要修改的环境变量也跟着修改了。
-
- 帖子: 40
- 注册时间: 2012-01-28 21:27
Re: 【求助】 bash里调用csh的环境变量
谢谢两位兄弟,确实存在aerofox所说的问题,在我们的项目中,有如下问题
1、csh环境变量由别人维护,整个团队使用,故无法也不愿用bash来改写;
2、里面有很多变量设置,有的用setenv描述,有的用set;
故,有空尝试一下 aerofox所提供的“csh脚本末尾用env命令把环境变量全部输出”方法
再次感谢两位,如有其他办法请跟帖,谢谢!
1、csh环境变量由别人维护,整个团队使用,故无法也不愿用bash来改写;
2、里面有很多变量设置,有的用setenv描述,有的用set;
故,有空尝试一下 aerofox所提供的“csh脚本末尾用env命令把环境变量全部输出”方法
再次感谢两位,如有其他办法请跟帖,谢谢!