繁体   English   中英

Shell脚本无法打印值

[英]shell script not printing value

我是shell编程的新手,试图运行以下脚本。 在以下示例中,我无法打印分配给hadoop_home变量的值。 请帮助我理解我的错误。

#!/bin/sh
echo "Holaaaa"
hadoop_home= echo "$HADOOP_HOME"
java_home= echo "$JAVA_HOME"
echo "Printing variable values"
echo "${hadoop_home}"
echo "${java_home}"

执行上述外壳程序后,它会打印

Holaaaa
/usr/hdp/2.6.0.1-152/hadoop/
/usr/lib/jvm/java-1.7.0-openjdk-amd64/jre/
Printing variable values

hadoop_home和java_home中的变量值为空。 为什么它为空,如何获得分配给这些变量的值?

分配不得在=周围有空格。 要捕获命令的输出,请使用$(cmd)

hadoop_home=$(echo "$HADOOP_HOME")

可以简化为:

hadoop_home=$HADOOP_HOME

删除变量周围的echo和双引号。

echo命令仅打印到标准输出,由于您不在标准输出中,因此不会为您的情况分配任何值给变量。 您可以稍作更改即可捕获结果:

$(echo "$HADOOP_HOME")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM