![変数内のドル記号](https://rvso.com/image/1618366/%E5%A4%89%E6%95%B0%E5%86%85%E3%81%AE%E3%83%89%E3%83%AB%E8%A8%98%E5%8F%B7.png)
拝啓、誰か、$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
を返します。など。