You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:25:05