Lo que suelo hacer es usar comillas dobles (" ) para postgres -c argumento y comillas dobles escapadas (\" ) para psql -c el argumento de De esa manera, puedo usar comillas simples (' ) dentro de la cadena SQL sin problema:
[example@sqldat.com ~]# su postgres -c "psql -c \"SELECT 'hi' \" "
?column?
----------
hi
(1 row)