在shellscript中执行多行mysql

use*_*196 16 mysql bash

当我尝试在shellscript中执行多行mysql

mysql -uroot -ppass mydb <<<EOF
SELECT * INTO OUTFILE 'table.csv'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
FROM mytable limit 1;
EOF


得到语法错误.

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EOF' at line 1

编写脚本的正确方法是什么?

Álv*_*lez 14

bash heredoc的语法是:

COMMAND <<InputComesFromHERE
...
...
...
InputComesFromHERE
Run Code Online (Sandbox Code Playgroud)

所以你有一个额外的<.

为了测试,你应该能够取代mysql -uroot -ppass mydb SQLecho并获取准确的SQL代码如预期.