Как мне выполнить программу X раз в терминале?
Я прочитал, что я должен сделать Tin bin / bash, но я не знаю, как выполнить это X раз.
command-line
user3597989
источник
источник
Ответы:
Вы можете использовать
xargs
иseq
. Обычно:Например:
выполнит
xdotool click 1
команду 10 раз.источник
Откройте Терминал и используйте следующую
bash
команду:С небольшим многословием и задержкой в 1 с:
источник
$
. Это просто там, чтобы указать приглашение оболочки, какsylvain@sylvain-ThinkPad-T430s:~$
. Мы обычно добавляем его в ответы командной строки, чтобы отличить команду от ее результатов.Это должно сделать:
где 10 - количество раз, чтобы выполнить команду
если вам нужно сделать небольшой перерыв:
Скопируйте скрипт в пустой файл, замените
<command to run>
егоxdotool
командой, сохраните какrun_xdotool.sh
, запустите его командой:Кроме того, вы можете сделать его исполняемым и просто запустить его
Другое решение: использование встроенной опции повтора в xdotool
Поскольку вы упоминаете, что он используется для кликов, проще всего использовать
xdotool
собственную встроенную опцию повтора. Формат такой:Чтобы сделать 10 щелчков мышью (кнопка 1) подряд, с интервалом в одну секунду, команда:
источник
Если у вас есть GNU Parallel, вы можете запустить:
Все новые компьютеры имеют несколько ядер, но большинство программ имеют последовательный характер и поэтому не будут использовать несколько ядер. Однако многие задачи чрезвычайно распараллеливаемы:
GNU Parallel - это общий параллелизатор, который позволяет легко запускать задания параллельно на одной и той же машине или на нескольких машинах, к которым у вас есть доступ по ssh.
Если у вас есть 32 различных задания, которые вы хотите запустить на 4 процессорах, прямой способ распараллеливания - запустить 8 заданий на каждом процессоре:
GNU Parallel вместо этого порождает новый процесс после его завершения - поддерживая процессоры активными и, таким образом, экономя время:
Установка
Персональная установка не требует root-доступа. Это можно сделать за 10 секунд, выполнив это:
Для других вариантов установки см. Http://git.savannah.gnu.org/cgit/parallel.git/tree/README.
Учить больше
Смотрите больше примеров: http://www.gnu.org/software/parallel/man.html
Посмотрите вступительные видеоролики: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Просмотрите учебник: http://www.gnu.org/software/parallel/parallel_tutorial.html
Подпишитесь на список рассылки, чтобы получить поддержку: https://lists.gnu.org/mailman/listinfo/parallel
источник
parallel -N0 doit ::: {1..10}
{1..10}
Не работает (т) CSH / рыба / золы, а{1..10}
конструкция ограничена длиной командной строки, так что это не будет работать: в{1..1000000000}
то время какseq 1000000000
будет работать нормально. Но для большинства ситуаций все{1..10}
будет работать как положено, и я тоже часто этим пользуюсь.Вы можете использовать
for
цикл в стиле C, который имеет преимущество перед версией (скобкой{1..5}
) ( ) в возможности использования переменных для указания конечных точек. Любая версия лучше, чем использование внешней утилиты (seq
).Все в одной строке:
Или вы можете сделать это без цикла (для этой конкретной утилиты и функции):
источник
Просто вы можете использовать команду watch:
измените x на время в секундах.
Пример :
Таким образом, xdotool click 1 будет повторяться каждые 1 с, прекратите его, когда закончите.
источник