BLOGサブスレッドの日常

2017.07.18

ブレース展開で楽しいbash

torikai

月曜日担当の鳥飼です。今日は火曜日ですが多目に見て下さい。
お久しぶりです。よろしくお願いします。

皆さん shell 書いていますか。
私はというと、そこまでヘビィに書いていないというか、ライトな方なのでこんな記事を書くといつどこからマサカリが飛んでくるかわからないんですが…

ブレース展開とは

ブレースって、{} の事です。
私は数分前に知って、それまでは「波括弧」とか言っていました…
他にも、カーリーブラケットと呼ぶこともあるそうです。

で、ブレース展開とはなんぞやというと、{}でくくった文字列を生成する展開のことです。
…例をあげる方が多分分かりやすいですね。

$ echo a1 a2 a3
$ echo a{1,2,3}

上の2つは同じ結果、つまり a1 a2 a3 になります。
ブレースは入れ子しても展開されます。

$ echo {a,b,c{1,2,3}}
a b c1 c2 c3

みたいな。
…あんまり使い所は思いつかないですが^^;

ブレース展開はどんな時に便利なのか

私がよく使うパターンでは、mvcp コマンドですね。
こんな風に使っています。

$ mv /usr/local/hogehoge/hagehage/{hoge,hage}.txt

バックアップの為にファイルを退避させたい時にもよく使います。

$ cp /usr/local/hogehoge/hagehage/hoge{,.bak}.txt

便利ー(ゝω・)v
だらだらと長いコマンドを書かずに済むのでとってもヘルシー(精神的に)

このブレース展開、意外とご存知でない方も多いのではないでしょうか。
これを使うと結構驚かれる事が多いです。

ちなみに

bash スクリプトの展開は他にも色々あります。無意識に使っているところだとチルダ展開とか、ワイルドカード展開とか。
ワイルドカード展開は、変な場面でハマったりするので、改めて調べてみると面白いかもしれません(・ω・)

今日のひとネタでした(・ω・)ノ

この記事を書いた人

torikai