「$$ブレース展開」の挙動

Sat Jan 20 16:02:45 JST 2024 (modified: Mon Jan 22 09:47:15 JST 2024)
views: 1148, 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に投げておきました。

追伸

解決しました。

ノート   このエントリーをはてなブックマークに追加 
 

prev:日記(2024年1月17日) next:「$$ブレース展開」の挙動(おしえてもらったので解決)

やり散らかし一覧

記事いろいろ