cshell脚本中source环境变量文件为什么无效?

cia00123 2010-05-07 05:21:31
环境变量文件名:cshrc
然后我在chsell脚本A.sh中如下:
#!/usr/bin/csh
source cshrc

然后我运行脚本:csh A.sh
发现cshrc中定义的变量无效啊!
这是为什么啊??cshell编程能自动实现source环境量吗?
...全文
1997 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
steptodream 2010-05-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cia00123 的回复:]

大哥们,拜托你们正面回答下啊。。我这么写肯定有我的用处啊。。我也知道就一句话的事!
[/Quote]
那是由linux系统决定 无法更改
你调用shell脚本 一定会fork一个子进程
shell本身提供的source .等内建命令 就是让你的设置环境变量在当前shell下生效 不用fork子进程
cia00123 2010-05-10
  • 打赏
  • 举报
回复
大哥们,拜托你们正面回答下啊。。我这么写肯定有我的用处啊。。我也知道就一句话的事!
steptodream 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mymtom 的回复:]

当然是无效的。
csh A.sh启动一个新的csh并运行A.sh 在A.sh里,cshrc里设置的环境变量都会生效的,但是A.sh退出后,一切都没有改变。其实在A.sh用source cshrc没有什么意义。
你直接输入
source cshrc不就可以了吗?
[/Quote]
看了你的回复 才发现楼主是把设置环境变量source cshrc放在脚本里执行
这不是多次一举么 就一句话 你还得写脚本里 弄巧成拙!
mymtom 2010-05-07
  • 打赏
  • 举报
回复
当然是无效的。
csh A.sh启动一个新的csh并运行A.sh 在A.sh里,cshrc里设置的环境变量都会生效的,但是A.sh退出后,一切都没有改变。其实在A.sh用source cshrc没有什么意义。
你直接输入
source cshrc不就可以了吗?
steptodream 2010-05-07
  • 打赏
  • 举报
回复
你在cshrc里是如何设置环境变量的哦
csh设置环境变量是setenv
例子
setenv JAVA_HOME /usr/local/java

23,217

社区成员

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

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