Det jag brukar göra är att använda dubbla citattecken (" ) för postgres -c s argument och escaped dubbla citattecken (\" ) för psql -c s argument. På så sätt kan jag använda enstaka citattecken (' ) inuti SQL-strängen utan problem:
[example@sqldat.com ~]# su postgres -c "psql -c \"SELECT 'hi' \" "
?column?
----------
hi
(1 row)