
for i in $(find template -type f | sed 's/^template//') ; do
diff -wBNu {,./template}$i
template
ディレクトリ内のすべてのファイルを走査し、 template で始まるすべての文を に置き換えるfor ループは理解できます''
。 この理解は正しいでしょうか?diff
ここで は何をしますか?
答え1
中括弧はシェルの「中括弧展開」を実行します。{,./template}$i という構文は、$i の値を含む単語のペアを生成しますが、後者には ./template が先頭に付加されています。次のコマンドを試してください。
echo foo{,bar}
シェルプロンプトで実行して、動作を確認してください。これは、bash マニュアルの「Brace の展開」に記載されています。