這裏是我的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 64
快速回答 - 在'[',在'=='周圍,在']'之前放一個空格。更完整的答案:[意外\'然後'bash腳本](http://stackoverflow.com/questions/16092963/unexpected-then-bash-script) – 2013-04-29 23:51:08