Escape single quotes ssh remote command

bash, double-quotes, quotes, ssh

Solution

In your first try you use double-quotes `"` so you need to escape the `$` character:

ssh root@server "ps uax|grep bac | grep -v grep | awk '{ print \$2 }' > /tmp/back.tmp"
                                                               ▲

Also, you can use:

 ps uax | grep 'ba[c]' | ...

so then you don't need the `grep -v grep` step.

Problem

I read any solutions for escaping single quotes on a remote command over ssh. But any work fine. I'm trying ``` ssh root@server "ps uax|grep bac | grep -v grep | awk '{ print $2 }' > /tmp/back.tmp" ``` AWK doesn't work: ``` ssh root@server "ps uax|grep bac | grep -v grep | awk \'{ print $2 }\' > /tmp/back.tmp" .... awk: '{ awk: ^ caracter ''' inválido en la expresión ``` And I tried using single quotes on the command line, but they also didn't work.

Original source

Related problems