2010-12-10 3 views
0

работает ниже скрипт я получаю:ошибка синтаксиса: неверный арифметический оператор

line 8: ((: i = 0 : syntax error: invalid arithmetic operator (error token is " ")

Любую идею, что это неправильно? Могу ли я редактировать текстовый редактор на iMac? что-то делать с CR?

domains=(yourdomain.com yourdomain2.com) 
sqldbs=(yourdb1 yourdb2) 
opath=$HOME/backup/ 
mysqlhost=mysqlhostname 
username=mysqlusername 
password=mysqlpassword 
suffix=$(date +%m-%d-%Y) 
for ((i = 0 ; i < ${#domains[@]} ; i++)) 
do 
    cpath=$opath${domains[$i]} 
    if [ -d $cpath ] 
    then 
     filler="just some action to prevent syntax error" 
    else 
     echo Creating $cpath 
     mkdir -p $cpath 
    fi 
    mysqldump -c -h $mysqlhost --user $username --password=$password ${sqldbs[$i]} > ${cpath}/${sqldbs[$i]}_$suffix.sql 
done 

ответ

0

Я скопировал и вставил снова строку 8 (как это было в сценарии) и работал нормально. Похоже, что ошибки синтаксического анализа были вызваны дополнительным символом в строке 8

0

Если вы используете блокнот ++, перейдите в Encoding> Encode в UTF8 без спецификации. Извините, я ничего не знаю о программном обеспечении Mac.

+1

Невозможно. BOM - первое, что есть в файле, получение и ошибка OP в строке ** 8 **. – delnan

1

Код ошибки сообщает вам, в чем проблема: у вас есть дополнительное пространство. Строка 8 должна быть:

for (i=0; i<${#domains[@]}; i++) 
+0

Я меняю строку 8 как советую, и теперь я получил: строка 8: синтаксическая ошибка около неожиданного токена '(' строка 8:' for (i = 0; i <$ {# domains [@]}; i ++)' – Giorgos

+0

@ Побег из тюрьмы, вы используете bash или sh? –

+0

сценарий упоминается здесь: http://wiki.dreamhost.com/Mysqldump SHELL =/bin/bash – Giorgos

Смежные вопросы