Команда Xdotool, чтобы дождаться процесса для завершения

Есть две основные категории команд watch (из тех, которые должны запускать команды периодически, watch не стандартная команда, есть даже системы, в которых watch делает что-то совершенно другое, например отслеживание другой линии tty во FreeBSD).

Тот, который уже передает конкатенацию своих аргументов с пробелами в оболочку (фактически вызывает sh -c ), а другой просто выполняет команду, указанную с аргументы указаны без вызова оболочки.

Вы находитесь в первой ситуации, поэтому вам просто нужно:

watch 'ls /tmp/|wc -l'

Когда вы это сделаете:

watch sh -c 'ls /tmp/|wc -l'

ваши часы на самом деле запускают:

sh -c 'sh -c ls /tmp/|wc -l'

И sh -c ls / tmp / запускает встроенный скрипт ls , где $ 0 равно / tmp / (поэтому ls запускается без аргументов и перечисляет Текущий каталог).

Некоторые из реализаций watch в первой категории (например, из procps-ng в Linux) принимают параметр -x , чтобы они вели себя как часы второй категории. Таким образом, там вы можете сделать:

watch -x sh -c 'ls /tmp/|wc -l'
5
21.10.2018, 20:47
1 ответ

Ответ заключается в том, что в настоящее время это невозможно сделать. Команды задержки sleep/--— ваши единственные возможные обходные пути, если вы продолжите делать это таким образом.

Единственный способ полностью и надежно автоматизировать процесс — это

  • A :Если рассматриваемой утилитой можно управлять из командной строки -вместо графического интерфейса, узнайте, какие аргументы командной строки необходимы, в в каком порядке, затем настройте псевдоним в bashrc, чтобы вы могли запускать его в любое время. время.
  • B :Поиск альтернативной программы, которая может делать то же самое через командную строку вместо того, чтобы полагаться на графический интерфейс.

Быстрый поиск в Google покажет вам, что для visipics 2 предполагается поддержка этого в профессиональной версии в соответствии с его концепцией, однако, поскольку она еще не разработана, и прошло около 8 лет с тех пор, как для нее были сделаны планы, маловероятно, что мы увидим это в ближайшее время.

Таким образом, у вас остается только возможность либо довольствоваться тем, что у вас есть прямо сейчас, и продолжать использовать спящий режим, либо переключиться на другой инструмент, например dupeGuru или fslint.

-1
27.01.2020, 20:44

Теги

Похожие вопросы