この単純なループを考えてみましょう:
for f in *.{text,txt}; do echo $f; done
有効なファイル名のみをエコーしたい。スクリプトで $f 変数を使用すると、その拡張子のファイルがない限り、すべてうまく機能します。空のセットの場合、$f は *.text に設定され、上記の行がエコーされます。
*.text
*.txt
何もエコーしないのではなく。これは、実際の実際のファイル名を期待するものに $f を使用しようとして、代わりに *.
空のセットにならないようにワイルドカードに一致するファイルがある場合、すべてが希望どおりに機能します。例えば
123.text
456.txt
789.txt
エラーなしで、アスタリスクの $f に一致する最初の文字列の一見過度の複雑さなしに、どうすればこれを行うことができますか?