синтаксическая ошибка: неверный арифметический оператор - PullRequest
0 голосов
/ 11 декабря 2010

запустив приведенный ниже скрипт, я получаю:

строка 8: ((: i = 0: синтаксическая ошибка: неверный арифметический оператор (ошибка токен "")

Есть идеи, что не так? Можно ли редактировать текстовым редактором на 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

Ответы [ 3 ]

1 голос
/ 11 декабря 2010

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

for (i=0; i<${#domains[@]}; i++)
0 голосов
/ 13 декабря 2010

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

0 голосов
/ 11 декабря 2010

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

...