1

这是一个简单的 bash 脚本:

a="asd"
b="qf"
echo "$a.$b"
echo "$a_$b"

它的输出是:

asd.qf
qf

为什么第二行不是“ asd_qf”而是“ qf”?

4

3 回答 3

4

因为你还没有定义一个名为a_. 要使第二个打印输出正常工作,请使用:

echo "${a}_$b"
于 2012-07-07T06:33:21.643 回答
3

您的第二个echo显示未设置的变量的值$a_

采用echo "${a}_$b"

于 2012-07-07T06:34:04.990 回答
3

shell 有关于变量名可以包含什么的规则,并被$a_解释为命名的变量a_(没有具有该名称的变量,因此其值为空)。

您始终可以添加大括号以明确。在这种情况下,${a}_$b将清楚地识别变量名称是什么,结果将是您所期望的。

于 2012-07-07T06:34:59.447 回答