今号では、先月号でちらっとご紹介した波括弧 {} について、ちょっと詳しくご紹介します!
【おさらい】bash における 括弧 () [] {} とは
Linux で bash を使用している環境で、スクリプト内などに括弧 () [] {} が使用されることがあります。
これらの括弧を使用することで、より複雑なスクリプトが作成できたり、スクリプトの記述を簡略化する事が出来ます。
なお、bash とはシェルの名称です。シェルには他にもたくさんの種類がありますが、bash が Linux 標準のシェルとして採用されています。
先月号では丸括弧 () と角括弧 [] の使い方についてご紹介しましたが、波括弧 {}については紹介しきれなかったため、今号は波括弧 {} の使い方をメインにご紹介します。
波括弧 {} の使い方
- 変数の展開
下記のように括弧内に指定した変数の展開を実行します。$ echo ${HOME} /home/user1
- 複数のコマンドをまとめる
下記のように括弧内に指定した複数のコマンドをまとめて実行します。
1行にまとめることができるので、見やすくて便利ですね。$ { echo "a"; echo "b"; echo "c"; } a b c
- ブレース展開
括弧内に複数の文字列を様々な条件で記述する事で、条件に沿った文字列を一気に出力することができます。【例1】{} 内に指定した文字を順次展開します。
$ echo hoge{1,2,3} hoge1 hoge2 hoge3
cp コマンドでファイルの末尾に文字列を付与してバックアップを作成する際に使用することもあります。
$ls hoge* hoge.txt $ cp hoge{,.bak}.txt $ ls hoge* hoge.bak.txt hoge.txt
【例2】数字やアルファベットであれば、下記のように記述すると連番で展開します。
$ echo hoge{1..10} hoge1 hoge2 hoge3 hoge4 hoge5 hoge6 hoge7 hoge8 hoge9 hoge10 $ echo hoge{a..e} hogea hogeb hogec hoged hogee
この記述方法は、for 文で指定した回数分の処理を実行する際によく使用されますね。
$ for i in {1..5}; do echo $i; done 1 2 3 4 5
【例3】{} を入れ子 (ネスト) にして記述することもできます。
$ echo hoge{a{1,2,3},b{4,5,6}} hogea1 hogea2 hogea3 hogeb4 hogeb5 hogeb6