我有这个
if [[ -e file.jpg ]] ;then echo "aaaaaaaaa"; fi
并打印“aaaaaaa”
但如果还有file.png或file.png
我想要打印所以我需要这样的东西
if [[ -e file.* ]] ;then echo "aaaaaaaaa"; fi
但它不起作用我在语法
中遗漏了一些东西由于
答案 0 :(得分:5)
如果启用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 :(得分:2)
为什么不使用循环?
for i in file.*; do
if [[ -e $i ]]; then
# exists...
fi
done