I recently learned about watch, but am having trouble making it work with relatively sophisticated commands.
For example, I would like to ask watch
to run the following command on zsh
every three seconds*:
for x in `command_1 | grep keyword | cut -d' ' -f1`; do command_2 "word[word=number]" $x; done
as you can see the line above includes single quotes, double quotes, among other special characters.
So I tried:
watch -n 3 "for x in `my_command | grep keyword | cut -d' ' -f1`; do command2 "rusage[mem=7000]" $x; done"
but then I got:
no matches found for x in !@#$# ....; done
I tried other combinations without success. Here's one of those attempts:
watch -n 3 "for x in $(bjobs -w | grep pre_seg | cut -d' ' -f1); do bmod -R "rusage[mem=7000]" $x; done"
which also results in a similar error.
Any ideas how to make this work?
*I would also be intersted in solutions that work on bash