Jak wykonać program X razy w terminalu?
Czytam, że muszę zrobić bin / bash txt, ale nie wiem, jak wykonać X razy.
command-line
użytkownik3597989
źródło
źródło
Odpowiedzi:
Możesz użyć
xargs
iseq
. Ogólnie:Na przykład:
wykona
xdotool click 1
polecenie 10 razy.źródło
Otwórz terminal i użyj następującego
bash
polecenia:Z odrobiną gadatliwości i opóźnieniem 1s:
źródło
$
. Jest tylko tam, aby wskazać znak zachęty powłokisylvain@sylvain-ThinkPad-T430s:~$
. Zazwyczaj dodajemy go do odpowiedzi z wiersza poleceń, aby odróżnić polecenie od jego wyników.To powinno zrobić:
gdzie 10 to liczba uruchomień polecenia
jeśli chcesz zbudować małą przerwę:
Skopiuj skrypt do pustego pliku, zastąp
<command to run>
goxdotool
poleceniem, zapisz jakorun_xdotool.sh
, uruchom go poleceniem:Alternatywnie możesz uczynić go wykonywalnym i po prostu uruchomić
Inne rozwiązanie: użycie wbudowanej opcji powtarzania xdotool
Ponieważ wspomniałeś o używaniu go do robienia kliknięć, najłatwiej może być użyć
xdotool
własnej wbudowanej opcji powtarzania. Format to:Aby wykonać 10 kliknięć myszką (przycisk 1) w rzędzie, jedna sekunda pomiędzy nimi, polecenie:
źródło
Jeśli masz GNU Parallel, możesz uruchomić:
Wszystkie nowe komputery mają wiele rdzeni, ale większość programów ma charakter szeregowy i dlatego nie będzie używać wielu rdzeni. Jednak wiele zadań można bardzo zrównoleglać:
GNU Parallel to ogólny paralelizator, który ułatwia równoległe uruchamianie zadań na tej samej maszynie lub na wielu maszynach, do których masz dostęp ssh.
Jeśli masz 32 różne zadania, które chcesz uruchomić na 4 procesorach, prostym sposobem na zrównoleglenie jest uruchomienie 8 zadań na każdym procesorze:
Zamiast tego GNU Parallel odradza nowy proces po zakończeniu - utrzymując procesory aktywne, a tym samym oszczędzając czas:
Instalacja
Instalacja osobista nie wymaga dostępu do konta root. Można to zrobić w 10 sekund, wykonując następujące czynności:
Inne opcje instalacji można znaleźć na stronie http://git.savannah.gnu.org/cgit/parallel.git/tree/README
Ucz się więcej
Zobacz więcej przykładów: http://www.gnu.org/software/parallel/man.html
Obejrzyj filmy wprowadzające: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Przejrzyj samouczek: http://www.gnu.org/software/parallel/parallel_tutorial.html
Zarejestruj się, aby uzyskać listę e-mail, aby uzyskać pomoc: https://lists.gnu.org/mailman/listinfo/parallel
źródło
parallel -N0 doit ::: {1..10}
{1..10}
Nie działa w (t) csh / ryb / popiół, a{1..10}
konstrukt jest ograniczona przez długość linii polecenia, zatem nie będzie działać:{1..1000000000}
natomiastseq 1000000000
będzie działać prawidłowo. Ale w większości sytuacji{1..10}
będzie działać zgodnie z oczekiwaniami, a ja często tego używam.Można użyć
for
pętli w stylu C, która ma tę przewagę nad wersją nawiasów klamrowych ({1..5}
), że może używać zmiennych do określania punktów końcowych. Każda wersja jest lepsza niż użycie zewnętrznego narzędzia (seq
).Wszystko w jednej linii:
Lub możesz to zrobić bez pętli (dla tego konkretnego narzędzia i funkcji):
źródło
Po prostu możesz użyć polecenia obserwuj:
zmień x na czas w sekundach.
Przykład:
Tak więc xdotool kliknięcie 1 będzie powtarzane co 1 s, zakończ je po zakończeniu.
źródło