Недавно я узнал о часах , но у меня возникли проблемы с его настройкой с помощью довольно сложных команд.
Например, я хотел бы попросить watch
запускать следующую команду zsh
каждые три секунды * :
for x in `command_1 | grep keyword | cut -d' ' -f1`; do command_2 "word[word=number]" $x; done
как вы можете видеть, строка выше включает одинарные кавычки, двойные кавычки и другие специальные символы.
Итак, я попробовал:
watch -n 3 "for x in `my_command | grep keyword | cut -d' ' -f1`; do command2 "rusage[mem=7000]" $x; done"
но потом я получил:
не найдено совпадений для x в! @ # $ # ....; сделанный
Я пробовал другие комбинации без успеха. Вот одна из тех попыток:
watch -n 3 "for x in $(bjobs -w | grep pre_seg | cut -d' ' -f1); do bmod -R "rusage[mem=7000]" $x; done"
что также приводит к аналогичной ошибке.
Есть идеи, как сделать эту работу?
* Я также был бы заинтересован в решениях, которые работают наbash
watch
что не входит-x
ни с-c
параметрами на моей машине. Я посмотрел его в Интернете и не нашел ни одной справочной страницы, в которой бы они упоминались. Что делают эти опции?-x
говоритwatch
не передавать команду через оболочку. Я только что узнал, что это специфично для Debian / Ubuntu, хотя это не указано как таковое.-c
Передаетсяzsh
, неwatch
.-x
и-exec
опции существуют в моемwatch
(на gentoo), так что это определенно не специфично для Debian. Может быть, вы сравнили с какой-то другой версиейwatch
? Моя приходит из пакета procps .watch
происходит отprocps
на Debian тоже. Официальный источник не имеет--exec
. Пакет в Debian (и производных, включая Ubuntu) добавляет опцию в специфичном для Debian патче (watch_exec_beep.patch
это «Mortys watch exec patch» из ошибки # 410967 ). Gentoo, возможно, принял аналогичный патч.