我有这个
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.*”
为什么不使用循环?
for i in file.*; do
if [[ -e $i ]]; then
# exists...
fi
done