Você perdeu as citações. Uma maneira de fazer isso:
sh -c "var=\"'pidof sh'\" ; echo \$var; ps -H"
Outro:
sh -c "var=\"\'pidof sh\'\" ; echo \$var; ps -H"
Observe que eles diferem no momento em que o pidof sh
é executado! Na primeira versão, a expressão dentro dos backticks ( pidof sh
) é executada pelo seu shell atual - que é anterior sh -c
é executado. No segundo, é o comando sh -c
que executa pidof
. Mais do que isso, o pidof
é executado dentro de um subshell que avalia a expressão dentro dos backticks - assim você obtém um pid adicional listado na variável var
. (Coloque mais simples: os backticks invocam outro shell que é então listado pelo pidof.)
Uma maneira melhor para ambos seria usar $( ... )
ou \$( ... )
.