Подтвердить что ты не робот

Выполнить многострочный 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

какой правильный способ его сценария?

4b9b3361

Ответ 1

Синтаксис для bash heredoc:

COMMAND <<InputComesFromHERE
...
...
...
InputComesFromHERE

Таким образом, у вас есть дополнительный <.

Чтобы протестировать, вы сможете заменить mysql -uroot -ppass mydb SQL echo и получить точный код SQL, как и предполагалось.