2010-12-10 5 views
0

die unten stehende Skript ausgeführt I erhalten:Syntaxfehler: ungültiger arithmetischer Operator

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

Jede Idee, was falsch ist? Kann ich das mit einem Texteditor auf einem iMac bearbeiten? etwas zu tun, vielleicht mit einer 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 

Antwort

0

Ich kopierte und Einfügen wieder Zeile 8 (wie es im Skript war) und funktionierte gut. Es scheint, dass Parsing-Fehler ein zusätzliches Zeichen in Zeile 8

0

Wenn Sie Notepad ++ verwenden, gehen Sie zu Encoding> Encode in UTF8 ohne BOM. Tut mir leid, ich weiß nichts über Mac-Software.

+1

nicht möglich waren. BOM ist die erste Sache in der Datei, OP bekommt und Fehler online ** 8 **. – delnan

1

Der Fehlercode sagt Ihnen, was das Problem ist: Sie haben einen zusätzlichen Platz. Zeile 8 sollte sein:

+0

Ich ändere Zeile 8 wie empfohlen und jetzt erhielt ich: Zeile 8: Syntaxfehler in der Nähe von unerwarteten Token '(' Zeile 8:' für (i = 0; i <$ {# Domänen [@]}; i ++)' – Giorgos

+0

@ Jailbreak, verwenden Sie bash oder sh? –

+0

das Skript wird hier erwähnt: http://wiki.dreamhost.com/Mysqldump SHELL =/bin/bash – Giorgos