【求助】 bash里调用csh的环境变量

sh/bash/dash/ksh/zsh等Shell脚本
回复
halfwolf
帖子: 40
注册时间: 2012-01-28 21:27

【求助】 bash里调用csh的环境变量

#1

帖子 halfwolf » 2012-03-12 15:15

【请教】 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
头像
josephyoung
帖子: 158
注册时间: 2011-11-05 18:53
来自: 南极圈

Re: 【求助】 bash里调用csh的环境变量

#2

帖子 josephyoung » 2012-03-13 12:30

代码: 全选

~ $ cat tool_setup.csh
#!/bin/csh
set path = (/apps/...../tools/bin $path)
echo $path


~ $ cat run.bash
#!/bin/bash
path=`csh ./tool_setup.csh`
bash脚本里面调用tool_setup.csh文件最好写绝对路径
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 【求助】 bash里调用csh的环境变量

#3

帖子 aerofox » 2012-03-13 13:16

为什么要去source?如果是执行某个脚本,直接用csh去执行。如果是为了设置当前环境,那应该不止是path一个,最好是重写一下,一般设置环境的脚本也不会很长。当然,你也可再csh脚本末尾用env命令把环境变量全部输出,再在bash脚本中执行这个输出结果,但可能一些不必要修改的环境变量也跟着修改了。
halfwolf
帖子: 40
注册时间: 2012-01-28 21:27

Re: 【求助】 bash里调用csh的环境变量

#4

帖子 halfwolf » 2012-03-15 10:29

谢谢两位兄弟,确实存在aerofox所说的问题,在我们的项目中,有如下问题
1、csh环境变量由别人维护,整个团队使用,故无法也不愿用bash来改写;
2、里面有很多变量设置,有的用setenv描述,有的用set;
故,有空尝试一下 aerofox所提供的“csh脚本末尾用env命令把环境变量全部输出”方法

再次感谢两位,如有其他办法请跟帖,谢谢!
回复