知っておくとちょっと便利!bash スクリプトで使用する波括弧 {} について

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【3/22開催】テックブログを書こう!アウトプットのススメ
1年で100本ブログを出した新米エンジニアがPV数が伸びなくてもTech Blogを書き続ける理由とは?
https://tech-lab.connpass.com/event/312805/

【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

今号では、先月号でちらっとご紹介した波括弧 {} について、ちょっと詳しくご紹介します!

【おさらい】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
    
アバター画像
About 貝野 友香 67 Articles
OSSよろず相談室でサポートをやっています。時々ライブ配信や勉強会に出ていることもあります。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

3人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる