Мне нужно выполнить эту команду через sudo в php.Но sudo должна иметь команду внутри апострофов.
psql -c "create database radek with encoding 'unicode';" -U edumate template1
, поэтому
sudo -su postgres 'psql -c "create database radek with encoding ''unicode'';" -U edumate template1'
дает мне ошибку
ERROR: syntax error at or near "unicode"
LINE 1: create database radek with encoding unicode;
^
Я бы сказал, что ошибка происходитпотому что юникод заключен в '.И команда sudo заключена в 'тоже.
UPDATE
экранирование Unicode \'unicode\'
не работает.Я получаю >
, и он висит там навсегда ....
UPDATE2
окончательный код php выглядит как
exec("sudo -su postgres 'psql -c \"create database " . $db . " with encoding '\"'\"'unicode'\"'\"';\" -U edumate template1'", $output);
благодаря @Matthew Scharley