Выполнить многострочный mysql в shellscript
Когда я пытаюсь выполнить многострочный mysql в shellscript
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
какой правильный способ его сценария?
Ответы
Ответ 1
Синтаксис для bash heredoc:
COMMAND <<InputComesFromHERE
...
...
...
InputComesFromHERE
Таким образом, у вас есть дополнительный <
.
Чтобы протестировать, вы сможете заменить mysql -uroot -ppass mydb SQL
echo
и получить точный код SQL, как и предполагалось.