Ce que je fais habituellement, c'est d'utiliser des guillemets doubles (" ) pour postgres -c l'argument de et les guillemets doubles échappés (\" ) pour psql -c l'argument. De cette façon, je peux utiliser des guillemets simples (' ) dans la chaîne SQL sans problème :
[example@sqldat.com ~]# su postgres -c "psql -c \"SELECT 'hi' \" "
?column?
----------
hi
(1 row)