这是我的 bash 脚本:
#!/bin/bash -x
for file in /home/sam/Desktop/RecoveredPix/*
do
model=$(exif -m -t Model $file)
if ["$model"=="Canon EOS REBEL T3i"]; then
echo $file >> /home/sam/Desktop/mypix.txt;
fi
done
嗨,我有一堆我恢复的照片,正在寻找用我的相机 T3i 拍摄的照片。我编写了这个脚本来查看 exif 数据中的模型,如果它与“Canon EOS REBEL T3i”匹配,它的路径将被附加到文件中。但是,在运行此脚本后,我会在终端中返回它:
+ for file in '/home/sammeh/Desktop/100CANON/*'
++ exif -m -t Model /home/sammeh/Desktop/100CANON/IMG_0019.JPG
+ model='Canon EOS REBEL T3i'
+ '[Canon EOS REBEL T3i==Canon EOS REBEL T3i]'
/home/sammeh/Desktop/Search Pix.sh: line 5: [Canon EOS REBEL T3i==Canon EOS REBEL T3i]: command not found
这是在仅用于验证功能的已知照片上完成的。但是,您可以看到 bash 出于某种原因将 if 语句解析为命令。有什么帮助吗?谢谢!
我正在运行 Ubuntu 13.04 x64