変数内のドル記号

変数内のドル記号

拝啓、誰か、$15をエコーし​​たときに出力5になる理由を説明してもらえますか。15変数が定義されていない場合、2番目の例のように出力はありません。

-bash-4.2$ echo $15
5
-bash-4.2$ echo ${15}

-bash-4.2$ echo $USER
kony
-bash-4.2$
-bash-4.2$ echo ${USER}
kony

答え1

ドル記号は、引数を取るために予約されています。具体的には、$0、$1 などです。値を印刷するには、ドル記号をエスケープするか、一重引用符で囲む必要があります。

次のいずれかを試してください。

echo \$15
echo '$15'

事実上「echo 5」と言っているため、コマンドの出力は常に存在します。値がないため、$1無視されます。$0 - $9 はすべて、引数を参照するためにシステムによって予約されています。0 echo $90を返します。など。

参照

関連情報