下面是一个简单的bash脚本:奇怪的外壳行为
a="asd"
b="qf"
echo "$a.$b"
echo "$a_$b"
它的输出是:
asd.qf
qf
为什么第二行是不是 “asd_qf
”,而是 “qf
”?
下面是一个简单的bash脚本:奇怪的外壳行为
a="asd"
b="qf"
echo "$a.$b"
echo "$a_$b"
它的输出是:
asd.qf
qf
为什么第二行是不是 “asd_qf
”,而是 “qf
”?
因为您尚未定义名为a_
的变量。对于第二打印工作,使用方法:
echo "${a}_$b"
你的第二个echo
显示变量$a_
的值未设置。
使用echo "${a}_$b"
shell有什么可以在变量名去规则,$a_
被解释为命名a_
变量(没有与该名称,因此它的值是空的没有变化)。
您可以随时添加大括号以明确。在这种情况下,${a}_$b
将明确标识变量名称,结果将成为您期望的结果。