我有这个
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 %sn" "${files[@]}"
fi
如果您不启用nullglob,则files=(file.*)
将导致一个带有一个元素的数组,即字符串"文件。*"
为什么不使用循环?
for i in file.*; do
if [[ -e $i ]]; then
# exists...
fi
done