ターミナルでBrace(波括弧)を展開する

あいかわらず自分はfish-shell使っていて、よくわかってないのでよく困ったりしている。

きょうはBrace…波括弧{}の展開をしたかったけどfish: Mismatched bracketsといわれて困っていた。

どういうことをやりたいのか

$ echo x{boy, girl, man, lady}
xboy xgirl xman xlady

イメージとしてはこういう感じにブレース内の単語に接頭辞を付与して展開したかった。

結論

上の例はミスっていて、実際はこう。

$ echo x{boy,girl,man,lady}
xboy xgirl xman xlady

なにが違うのか

,(カンマ)の後ろにスペース打ってるか否か………。

つまり

$ echo x{boy, girl, man, lady}
fish: Mismatched brackets

$ echo x{boy,girl,man,lady}
xboy xgirl xman xlady

JSに書くときのクセでカンマ後ろにスペース入れたほうが見やすいので無意識に打っていた…。


fish使ってるからfishのことっぽく書いたけど、スペース含めるとダメなのはZSHでも同じなのでスペースを含めるなというはなし。

ただの凡ミスなので休みましょうね〜という暗示な気がする。