sql表数据导出到csv

sql表数据导出到csv

我正在尝试将sql表数据导出到csv,但是出现这些错误。我真的对双引号和单引号感到困惑。

#!/bin/bash
mysql -u root -pH0tjava1 -B -e 'SELECT CONCAT("sshpass -p ""Password"" rsync -avvtzh -e ""ssh -o StrictHostKeyChecking=no"" --log-file=""/home/toor/rsync2.log""", login,"@", ftp_addr, " :", camera_name,"/", "/",`\ 'home`',"/",login, "/", camera_name) INTO OUTFILE '/tmp/rsynctest3.csv' lines terminated by '\r\n' from inteliviz.cameras;"


Errors:
/usr/local/bin/rsync.sh: line 8: syntax error near unexpected token `)'
/usr/local/bin/rsync.sh: line 8: `  mysql -u root -pH0tjava1 -B -e "select  CONCAT ("sshpass -p "Pa55word"  rsync   -avvtzh -e  "ssh -o StrictHostKeyChecking=no"  --log-file= "/home/toor/rsync2.log", login,camera_name,ftp_addr)  INTO OUTFILE '/tmp/rsynctest3.csv' lines terminated by '\r\n'  from inteliviz.cameras;"'

/usr/local/bin/rsync.sh: line 8: unexpected EOF while looking for matching ``'
/usr/local/bin/rsync.sh: line 11: syntax error: unexpected end of file

最佳答案

我真的对双引号和单引号感到困惑。


您的语句中不仅有双引号和单引号,而且还有反引号。不匹配的是:


您以'SELECT…开头SQL语句,并以…inteliviz.cameras;"结尾。要将引号从第一部分的'切换到最后部分的",必须在e之间插入一个结束'和一个开始"。 G。 …camera_name)'" INTO OUTFILE…
表达式`\ 'home`'混乱-第一个`在外部单引号内,因此没有特殊功能,在'关闭单引号之前的home,第二个`打开未封闭的命令替换,其中最后一个'在其中。您必须重新考虑要在此处存放的内容,并使报价嵌套直接。

关于mysql - 使用bash脚本将mysql表数据导出到csv,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34158725/

10-10 07:10