Shell变量问题
本帖最后由 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
export HIBENCH_HOME="/hadoop/intel-hadoop-HiBench-4aa2ffa"
export JOBS_HOME="/hadoop/result/jobs"
./b.sh
子进程可以访问父进程中的全局变量
[解决办法]
关于Shell脚本变量传递
1 本地变量无法传递到子进程
2 环境变量对所有的子进程都有效
3 无论本地变量还是环境变量都无法向父进程传递参数
[解决办法]
这个说一点吧,说完全了内容太多了,看个简单的例子
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分隔符这些,都跟"" 单引号相关,内容太多啊