ディレクトリから配列にファイルを読み込もうとしていますが、ファイルが存在しなくても配列に保存されています。ファイル名がなければ除外したいです。
a=(/tmp/nofileexists) && echo ${#a[@]} && echo ${a[@]}
1
/tmp/nofileexists
パスにはワイルドカード文字を含めることができます。
a=(/tmp/nofileexists*.pdf) && echo ${#a[@]} && echo ${a[@]}
答え1
ファイル名拡張が失敗した場合は、空のnullglob
文字列戻りを使用できます。bash
$ shopt -s nullglob
$ a=(/tmp/nofileexists*.pdf) && echo ${#a[@]} && echo ${a[@]}
0
<blank line>
またはfailglob
エラー報告を使用してください。
$ shopt -s failglob
$ a=(/tmp/nofileexists*.pdf) && echo ${#a[@]} && echo ${a[@]}
bash: no match: /tmp/nofileexists*.pdf