当前位置: 技术问答>linux和unix
Shell变量问题
来源: 互联网 发布时间:2017-05-01
本文导语: 本帖最后由 cloudeagle_bupt 于 2013-11-11 23:20:43 编辑 a.sh #!/bin/bash HIBENCH_HOME="/hadoop/intel-hadoop-HiBench-4aa2ffa" JOBS_HOME="/hadoop/result/jobs" ./b.sh b.sh echo 1111 echo ${HIBENCH_HOME} echo ${JOBS_HOME} 执行结果: ./a.sh 1111 不知道怎么回事...
#!/bin/bash
HIBENCH_HOME="/hadoop/intel-hadoop-HiBench-4aa2ffa"
JOBS_HOME="/hadoop/result/jobs"
./b.sh
b.sh
echo 1111
echo ${HIBENCH_HOME}
echo ${JOBS_HOME}
执行结果:
./a.sh
1111
不知道怎么回事,请达人指教下。
|
关于Shell脚本变量传递
1 本地变量无法传递到子进程
2 环境变量对所有的子进程都有效
3 无论本地变量还是环境变量都无法向父进程传递参数
1 本地变量无法传递到子进程
2 环境变量对所有的子进程都有效
3 无论本地变量还是环境变量都无法向父进程传递参数
|
#!/bin/bash
export HIBENCH_HOME="/hadoop/intel-hadoop-HiBench-4aa2ffa"
export JOBS_HOME="/hadoop/result/jobs"
./b.sh
子进程可以访问父进程中的全局变量
|
这个说一点吧,说完全了内容太多了,看个简单的例子
双引号 会屏蔽掉大部分的元字符,像,`,$这几个字符在在双引号中有效
单引号 中所有的字符均无引用作用
楼主可以自己查下Linux的元字符和普通字符,还有IFS分隔符这些,都跟"" 单引号相关,内容太多啊
hadoop3@linux-240:~> cat aa.sh
name="x y z"
echo $name
echo "$name"
echo '$name'
hadoop3@linux-240:~> sh aa.sh
x y z
x y z
$name
hadoop3@linux-240:~>
双引号 会屏蔽掉大部分的元字符,像,`,$这几个字符在在双引号中有效
单引号 中所有的字符均无引用作用
楼主可以自己查下Linux的元字符和普通字符,还有IFS分隔符这些,都跟"" 单引号相关,内容太多啊