shell脚本没有打印值

时间:2018-04-17 19:11:55

标签: linux bash shell

我是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}"

执行上述shell时,会打印

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中的变量值为空。为什么它是空的,我如何获得分配给这些变量的值?

2 个答案:

答案 0 :(得分:3)

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

hadoop_home=$(echo "$HADOOP_HOME")

这可以简化为:

hadoop_home=$HADOOP_HOME

答案 1 :(得分:1)

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

echo命令只打印到标准输出,它不会为您的情况下的变量分配任何值,因为您不在标准输出中。您可以通过稍微更改来捕获结果:

$(echo "$HADOOP_HOME")