语法错误:算术运算符无效

时间:2010-12-10 21:55:59

标签: math operator-keyword shell

运行我收到的以下脚本:

  

第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 个答案:

答案 0 :(得分:1)

错误代码告诉您问题所在:您有一个额外的空间。第8行应该是:

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

答案 1 :(得分:0)

如果您使用的是记事本++,请转到编码&gt;在没有BOM的情况下以UTF8编码。对不起,我对Mac软件一无所知。

答案 2 :(得分:0)

我再次复制并粘贴第8行(就像在脚本中一样)并且工作正常。似乎解析错误是由于第8行中的额外字符