「$$ブレース展開」の挙動
Sat Jan 20 16:02:45 JST 2024 (modified: Mon Jan 22 09:47:15 JST 2024)
views: 1371, keywords:bash
Bashの(@ebanさんによるとZshも)なんだかよくわからない挙動にまたぶちあたってしまいました。 次の4つの例のexample 2の出力が私にはよくわかりません。$$が値に置き換わっているのに、そのうしろの{x,y}
がブレース展開と解釈されていない点が不明です。
echo $BASH_VERSION
$ 5.1.16(1)-release
example 1$ echo $?{x,y}
0x 0y #ブレースの部分が展開される
example 2$ echo $${x,y}
4821{x,y} #ブレースの部分が展開されない <-謎
example 3$ echo ${$}{x,y}
4821x 4821y #これは展開される(シェルスクリプトではこう書いたほうがいい)
example 4$ echo $PPID{x,y}
#これは$PPIDと解釈されないのでなにも出ない(おそらくPPID{x,y}でひとかたまりの単語として解釈されている)
とりあえずこういう現象があるという報告だけですが、メモということで。 英語でも書いたほうがいいかな???
ということで
Stack Overflowに投げておきました。