私はこれを持っています
if [[ -e file.jpg ]] ;then echo "aaaaaaaaa"; fi
そして、「aaaaaaa」と出力されます
しかし、file.pngまたはfile.pngもあれば印刷したい
だから私はこのようなものが必要です
if [[ -e file.* ]] ;then echo "aaaaaaaaa"; fi
しかし、機能しません構文に何かが欠けています
ありがとう
bash のnullglob
設定を有効にすると、そのようなファイルがない場合、パターン ファイル.* は空の文字列に展開されます。
shopt -s nullglob
files=(file.*)
# now check the size of the array
if (( ${#files[@]} == 0 )); then
echo "no such files"
else
echo "at least one:"
printf "aaaaaaaaa %s\n" "${files[@]}"
fi
nullglob を有効にしない場合files=(file.*)
、文字列 "file.*" の 1 つの要素を持つ配列になります。
ループを使用しないのはなぜですか?
for i in file.*; do
if [[ -e $i ]]; then
# exists...
fi
done