Recientemente aprendí sobre watch , pero tengo problemas para que funcione con comandos relativamente sofisticados.
Por ejemplo, me gustaría solicitar watchejecutar el siguiente comando zshcada tres segundos * :
for x in `command_1 | grep keyword | cut -d' ' -f1`; do command_2 "word[word=number]" $x; doneComo puede ver, la línea anterior incluye comillas simples, comillas dobles, entre otros caracteres especiales.
Entonces intenté:
watch -n 3 "for x in `my_command | grep keyword | cut -d' ' -f1`; do command2 "rusage[mem=7000]" $x; done"pero luego obtuve:
no se encontraron coincidencias para x in! @ # $ # ....; hecho
Probé otras combinaciones sin éxito. Aquí hay uno de esos intentos:
watch -n 3 "for x in $(bjobs -w | grep pre_seg | cut -d' ' -f1); do bmod -R "rusage[mem=7000]" $x; done"que también da como resultado un error similar.
¿Alguna idea de cómo hacer que esto funcione?
* También me interesarían las soluciones que funcionan enbash

watchno viene con las opciones-xni-cen mi máquina. Lo busqué en línea y no he encontrado ninguna página de manual que los mencione. ¿Qué hacen estas opciones?-xle dice quewatchno pase el comando a través de un shell. Me acabo de enterar de que esto es específico de Debian / Ubuntu, a pesar de que no está indicado como tal. El-cse pasa azsh, no awatch.-xy-execexisten en mywatch(en gentoo), por lo que definitivamente no es específico de Debian. Tal vez lo comparaste con alguna otra versión dewatch? El mío proviene del paquete procps .watchproviene deprocpsDebian. La fuente oficial no tiene--exec. El paquete en Debian (y derivados que incluyen Ubuntu) agrega la opción en un parche específico de Debian (watch_exec_beep.patch; es el "parche de ejecución de Mortys watch" del error # 410967 ). Gentoo puede haber adoptado un parche similar.