Как выполнить программу X раз в терминале?
Я читал, что мне нужно сделать bin/bash txt, но я не знаю, как выполнить это X раз.
решение1
решение2
Откройте Терминал и используйте следующую bash
команду:
for i in {1..5}; do xdotool click 1; done
С небольшой многословностью и задержкой в 1 секунду:
for i in {1..5}; do echo click \#$i && xdotool click 1 && sleep 1; done
click #1
click #2
click #3
click #4
click #5
решение3
Это должно сделать:
#!/bin/bash
x=1
while [ $x -le 10 ]
do
<command to run>
x=$(( $x + 1 ))
done
где 10 — количество раз выполнения команды
если вам нужно сделать небольшой перерыв:
#!/bin/bash
x=1
while [ $x -le 10 ]
do
<command to run>
sleep 1
x=$(( $x + 1 ))
done
Скопируйте скрипт в пустой файл, замените <command to run>
своей xdotool
командой, сохраните как run_xdotool.sh
, запустите его командой:
sh /path/to/run_xdotool.sh
В качестве альтернативы вы можете сделать его исполняемым и просто запустить его с помощью
/path/to/run_xdotool.sh
Другое решение: использование встроенной опции повтора xdotool
Поскольку вы упомянули, что используете его для выполнения щелчков, проще всего будет использовать xdotool
собственную встроенную опцию повтора. Формат такой:
xdotool click --delay <delay> --repeat <repeats> <button>
(delay in milliseconds between the clicks)
Чтобы сделать 10 щелчков мышью (кнопка 1) подряд с интервалом в одну секунду, команда выглядит так:
xdotool click --delay 1000 --repeat 10 1
решение4
Вы можете использовать цикл в стиле C for
, который имеет преимущество перед версией с раскрытием скобок ( {1..5}
), поскольку позволяет использовать переменные для указания конечных точек. Любая из версий лучше, чем использование внешней утилиты ( seq
).
t=5
for ((x = 1; x <= t; x++))
do
xdotool click 1
done
Все в одной строке:
t=5; for ((x = 1; x <= t; x++)); do xdotool click 1; done
Или вы можете сделать это без цикла (для этой конкретной утилиты и функции):
xdotool click --repeat 5 --delay 50 1