15

jpg拡張子またはに一致するすべてのファイルをループしたいtxt。私が使う:

for file in myDir/*.{jpg,txt}
do
  echo "$file"
done

問題:ディレクトリに jpg ファイルがまったく含まれていない場合、ループは output で 1 回繰り返されますmyDir/*.jpg。任意のファイルに置き換えられると思い*ました(ファイルが存在しない場合は展開できません)。不要な反復を回避するにはどうすればよいですか?

4

2 に答える 2

22

これを使用して、不要な反復を回避します。

shopt -s nullglob

からman bash:

nullglob: 設定されている場合、bash は、どのファイルとも一致しないパターン (上記のパス名展開を参照) を、それ自体ではなく、null 文字列に展開することを許可します。

参照:help shoptおよびshopt

于 2015-04-03T18:56:27.263 に答える