1

簡単な bash スクリプトを次に示します。

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

出力は次のとおりです。

asd.qf
qf

なぜ 2 行目は「asd_qf」ではなく「qf」なのですか?

4

3 に答える 3

4

という名前の変数を定義していないためですa_。その 2 番目の印刷を機能させるには、次を使用します。

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

2番目は、設定されていないecho変数の値を表示します$a_

使用するecho "${a}_$b"

于 2012-07-07T06:34:04.990 に答える
3

シェルには、変数名に何を入れることができるかについての規則があり、$a_指定された変数として解釈されますa_(その名前の変数は存在しないため、その値は空です)。

中括弧をいつでも明示的に追加できます。この場合、${a}_$bは変数名が何であるかを明確に識別し、結果は期待どおりになります。

于 2012-07-07T06:34:59.447 に答える