bash でコマンドへ同じような引数を繰り返して指定する場合にブレース展開を使う

ALL
スポンサーリンク

bash にブレース展開というものがあって、コマンドへ同じような引数を繰り返して指定する場合に便利です。

ブレース展開:
bashのブレース展開を使ってカンマ区切りリストを作る – 双六工場日誌

bashには、ブレース展開というブレース({}のカッコのこと)の中身を一定の法則で展開して、半角スペース区切りのリストにしてくれる機能があります。

例えば、rsyncで除外ファイルを複数指定する場合、次のように書けます。

rsync -av --delete --exclude={swapfile,"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/snap/*"} / /mnt/backup/

これは、–exclude= が展開されて次と同等です。

rsync -av --delete --exclude=swapfile --exclude=/dev/* --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/* --exclude=/run/* --exclude=/mnt/* --exclude=/media/* --exclude=/lost+found --exclude=/snap/* / /mnt/backup/

echo で手軽に試してみることができます。

echo para={1,2,3}

上のように実行すると、結果は次のように、展開されて表示されます。

para=1 para=2 para=3

コメント