Usar el comando watch con un argumento que contiene comillas


15

Estoy tratando de hacer que watch funcione correctamente con comandos que contienen comillas, y la página del manual de watch no es muy detallada sobre cómo funcionan las comillas. Para dar un ejemplo concreto, ¿cómo puedo ejecutar el siguiente comando dentro de watch:

ps -ef | awk -F' ' '{print $2}'

He intentado:

watch "ps -ef | awk -F' ' '{print $2}'"

y

watch 'ps -ef | awk -F\' \' \'{print $2}\''

pero ninguno de estos funciona correctamente.

Respuestas:


18

Supongo que tienes que escapar de la $señal:

watch "ps -ef | awk -F' ' '{print \$2}'"

de lo contrario, sería interpretado por el shell, lo que daría como resultado una cadena vacía ( ""), es decir awk, imprimiría la línea completa.


7

Siempre puede poner su comando en un script de shell, luego "mirar" el script.


2

Acabo de encontrar un problema similar. Después de leer el reloj Man Page , encontré una solución que podría funcionar, que es concatenar cadenas en bash. El comando final parecía extraño, como:

watch "ps -ef | awk -F' ' '"'{print $2}'"'"

o

watch 'ps -ef | awk -F'"' ' '"'{print $2}'"'"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.