디렉토리의 모든 이미지를 반복하고 싶습니다. 이미지에는 확장자가 없으므로 해당 유형을 알기 위해서는 이미지의 첫 번째 바이트를 읽어야 합니다. 루프는 다음과 같이 나타나야 합니다.
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