DEV Community

Will Sheppard
Will Sheppard

Posted on • Edited on

Escape quotes correctly when using psql via docker in bash

docker compose exec site bash -c 'PGPASSWORD=***** psql -Ufoo -d bar \ -h example.com -x -c "select qux, date(xyzzy) from tabley \ where field in(1, 2, 3) and that_time > '"'"'2024-11-18'"'"' \ order by that_time;"' 
Enter fullscreen mode Exit fullscreen mode

Explanation:

'"'"' is the Quoteception operator.

When used in the middle of a single quoted string, it:

  • ' Ends the single quoted string
  • " Starts a new double quoted string
  • ' Containing only one single quote
  • " Ends the double quoted string
  • ' Starts the next single quoted string

Or described another way:

echo 'Embedded single quote is here: '"'"' did you see it?' 
Enter fullscreen mode Exit fullscreen mode

Or even:

echo 'Embedded single quote is here: ' \ "'" \ ' did you see it?' 
Enter fullscreen mode Exit fullscreen mode

Outputs:

Embedded single quote is here: ' did you see it? 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)