2010-12-10 3 views
0

exécutant le script ci-dessous je reçois:Erreur de syntaxe: opérateur arithmétique invalide

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

Toute idée de ce qui est faux? Est-ce que je peux éditer avec un éditeur de texte sur un iMac? quelque chose à faire peut-être avec un 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 

Répondre

0

J'ai copié et collé à nouveau la ligne 8 (comme c'était dans le script) et a bien fonctionné. Il semble que les erreurs d'analyse étaient dues à un caractère supplémentaire dans la ligne 8

0

Si vous utilisez le bloc-notes ++, accédez à Encodage> Encoder dans UTF8 sans nomenclature. Désolé je ne sais rien sur le logiciel Mac.

+1

Impossible. La nomenclature est la première chose dans le fichier, l'obtention de l'OP et l'erreur sur la ligne ** 8 **. – delnan

1

Le code d'erreur vous indique quel est le problème: vous disposez d'un espace supplémentaire. La ligne 8 devrait être:

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

Je modifie la ligne 8 comme conseillé et maintenant j'ai reçu: ligne 8: erreur de syntaxe près du jeton inattendu '(' ligne 8:' pour (i = 0; i <$ {# domaines [@]}; i ++)' – Giorgos

+0

@ Jailbreak, utilisez-vous bash ou sh? –

+0

le script est mentionné ici: http://wiki.dreamhost.com/Mysqldump SHELL =/bin/bash – Giorgos