我想对目录中的所有图像进行循环。图像没有扩展名,因此我必须读取图像的第一个字节才能知道其类型。循环最终应该是这样的。
for file in *
do
if [ file --mime-type -b ]
then
***
fi
done
答案1
使用该case
语句和命令替换:
for file in *; do
case $(file --mime-type -b "$file") in
image/*g) ... ;;
text/plain) ... ;;
application/xml) ... ;;
application/zip) ... ;;
*) ... ;;
esac
done
查看 :
http://mywiki.wooledge.org/BashFAQ/002
http://mywiki.wooledge.org/CommandSubstitution
http://mywiki.wooledge.org/BashGuide/TestsAndConditionals#Choices
http://wiki.bash-hackers.org/syntax/ccmd/case
编辑
如果你坚持不使用case
但if
声明使用巴什:
if [[ $(file --mime-type -b "$file") == image/*g ]]; then
...
else
...
fi