免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1873 | 回复: 4
打印 上一主题 下一主题

【求助】关于shell脚本中的变量问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-27 01:04 |只看该作者 |倒序浏览
我写一个简单的脚本文件test,内容如下:
#!/bin/bash
#This is a test file!
export DAY=sunday
echo 'Today is '"$DAY"

然后执行这个脚本文件,可以显示出:Today is sunday,但我用echo $DAY命令时,结果却为空,为什么会这样?我脚本中不是给DAY这个变量赋值了吗?请高手作答,谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-05-27 01:53 |只看该作者
因为shell script是在子shell (sub shell)中运行的
你用source ./scriptname
再echo 就能 echo出来了

[ 本帖最后由 李某人 于 2008-5-27 02:06 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-05-27 02:08 |只看该作者
原帖由 noway01 于 2008-5-27 01:04 发表
我写一个简单的脚本文件test,内容如下:
#!/bin/bash
#This is a test file!
export DAY=sunday
echo 'Today is '"$DAY"

然后执行这个脚本文件,可以显示出:Today is sunday,但我用echo $DAY命令时, ...


你目前操作的環境是 a shell,你在 a shell 執行該 script 等於就是另外產生一個 b shell 執行該 script。該 script 的任何環境變量調整都是作用於 b shell ,b shell 跑完後結束回到原本的 a shell,結果對於 a 來說當然還是等於沒有任何異動。

论坛徽章:
0
4 [报告]
发表于 2008-05-27 22:06 |只看该作者
谢谢两位的指点,还有个地方不明白,即使是在新的shell中执行,但我用了export命令也不行吗?还有用source ./scriptname为什么又可以了呢?

论坛徽章:
1
寅虎
日期:2015-01-23 02:35:47
5 [报告]
发表于 2008-05-27 22:23 |只看该作者
export的shell和当前shell不是同一个shell,而source,或者.  作用是在当前shell执行,而不派生出另一个新shell去执行
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP