Eu acho que você tem que escapar do sinal $
:
watch "ps -ef | awk -F' ' '{print \}'"
caso contrário, ele seria interpretado pelo shell, o que resultaria em uma string vazia ( ""
) - ou seja, awk
imprimiria a linha inteira.
Estou tentando fazer com que o relógio funcione corretamente com comandos que contenham citações, e a página do manual do relógio não é muito detalhada sobre como as cotações funcionam. Para dar um exemplo concreto, como posso executar o seguinte comando dentro do relógio:
ps -ef | awk -F' ' '{print $2}'
Eu tentei:
watch "ps -ef | awk -F' ' '{print $2}'"
e
watch 'ps -ef | awk -F\' \' \'{print $2}\''
mas nenhum deles funciona corretamente.
Você sempre pode colocar seu comando em um script de shell e "assistir" ao script.
Acabei de encontrar um problema semelhante. Depois de ler a página de manual do Watch , encontrei uma solução que poderia funcionar, que é concatenar strings no bash. O comando final parecia estranho, como:
watch "ps -ef | awk -F' ' '"'{print $2}'"'"
ou
watch 'ps -ef | awk -F'"' ' '"'{print $2}'"'"