簡単な bash スクリプトを次に示します。
a="asd"
b="qf"
echo "$a.$b"
echo "$a_$b"
出力は次のとおりです。
asd.qf
qf
なぜ 2 行目は「asd_qf
」ではなく「qf
」なのですか?
簡単な bash スクリプトを次に示します。
a="asd"
b="qf"
echo "$a.$b"
echo "$a_$b"
出力は次のとおりです。
asd.qf
qf
なぜ 2 行目は「asd_qf
」ではなく「qf
」なのですか?
という名前の変数を定義していないためですa_
。その 2 番目の印刷を機能させるには、次を使用します。
echo "${a}_$b"
2番目は、設定されていないecho
変数の値を表示します$a_
。
使用するecho "${a}_$b"
シェルには、変数名に何を入れることができるかについての規則があり、$a_
指定された変数として解釈されますa_
(その名前の変数は存在しないため、その値は空です)。
中括弧をいつでも明示的に追加できます。この場合、${a}_$b
は変数名が何であるかを明確に識別し、結果は期待どおりになります。