Shell新手求助:自定义变量hadoop_home无法打印值的问题
Shell脚本变量打印问题排查
嘿,我来帮你捋捋这个问题~你的脚本里其实藏着两个容易踩的小坑,咱们一个个说:
1. 大写变量输出的来源
你脚本里打印的$HADOOP_HOME和$JAVA_HOME,并不是你自己定义的变量——这俩是系统预先配置好的环境变量,哪怕你没在脚本里声明它们,Shell也会从当前运行环境里读取到这些预设值,所以才会输出那些路径。
2. 自定义小写变量为空的原因
你看这两行代码:
hadoop_home= java_home=
这相当于直接把hadoop_home和java_home赋值成了空字符串,后面用${hadoop_home}和${java_home}打印的时候,自然就看不到内容啦。
修正后的脚本示例
如果你想给这两个变量赋值并正常打印,改成这样就行(比如赋值成你实际需要的路径):
#!/bin/sh echo "Holaaaa" # 给自定义变量赋值具体路径 hadoop_home="/usr/hdp/2.6.0.1-152/hadoop/" java_home="/usr/lib/jvm/java-1.7.0-openjdk-amd64/jre/" # 打印系统环境变量(如果需要保留的话) echo "$HADOOP_HOME" echo "$JAVA_HOME" echo "Printing variable values" # 打印自定义的小写变量 echo "${hadoop_home}" echo "${java_home}"
哪怕只是测试变量功能,也可以给它们赋个简单字符串,比如hadoop_home="my_test_path",这样打印时就能看到内容了~
内容的提问来源于stack exchange,提问作者Atom
相关产品推荐
相关产品推荐

