Вот мой Баш скрипт:
#!/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
Быстрый ответ - введите пробел после '[', вокруг '==' и перед '' '. Более полный ответ: [Неожиданный сценарий '' then 'bash] (http://stackoverflow.com/questions/16092963/unexpected-then-bash-script) –