Есть некий скрипт на bash, в котором есть данная переменная:
Q='SELECT *
FROM blabla.users s
LEFT JOIN auth.users u on s.userId = u.userId
WHERE
s.userId is not NULL and
not( (u.email like "test@%" OR u.email like "a@%") ) and u.deactivated is NULL
INTO OUTFILE '/home/blalba/$F.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
'
при выполнении - ругается:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '/home/blabla/Пт_июл__8_13:20:37_MSK_2016.csv
FIELDS TERMINATED BY ,
' at line 7
При bash -x явно видно, что не используются кавычки в комманде FIELDS и, соответсвенно, в следующей тоже не будут использоваться, на что SQL и ругается:
+ Q='SELECT *
FROM blabla.users s
LEFT JOIN auth.users u on s.userId = u.userId
WHERE
s.userId is not NULL and
not( (u.email like "test@%" OR u.email like "a@%") ) and u.deactivated is NULL
INTO OUTFILE /home/blabla/Пт_июл__8_13:20:37_MSK_2016.csv
FIELDS TERMINATED BY ,
LINES TERMINATED BY \n;
'
Так вот, как правильно заэкранировать ' ?