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

Math 语法错误:算术运算符无效,math,operator-keyword,shell,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 suffi

运行我收到的以下脚本:

第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
domains=(yourdomain.com yourdomain2.com)
sqldbs=(yourdb1 yourdb2)
opath=$HOME/backup/
mysqlhost=mysqlhostname
username=mysqlusername
password=mysqlpassword
后缀=$(日期+%m-%d-%Y)
对于((i=0;i<${#域[@]};i++)
做
cpath=$opath${domains[$i]}
如果[-d$cpath]
然后
filler=“只是一些防止语法错误的操作”
其他的
echo创建$cpath
mkdir-p$cpath
fi
mysqldump-c-h$mysqlhost--user$username--password=$password${sqldbs[$i]}>${cpath}/${sqldbs[$i]}}$suffix.sql
完成

如果您使用的是记事本+,请转到编码>使用UTF8编码,不带BOM。很抱歉,我对Mac软件一无所知。

错误代码告诉您问题所在:您有多余的空间。第8行应该是:

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

for(i=0;i我再次复制并粘贴了第8行(在脚本中是这样),工作正常。似乎解析错误是由于第8行中的一个额外字符造成的。BOM是文件中的第一件事,OP在第8行得到并出错。我将第8行更改为已通知,现在收到:第8行:意外标记附近的语法错误
('第8行:
for(i=0;i@Jailbreak,您使用的是bash还是sh?这里提到了脚本:SHELL=/bin/bash