Bagaimana saya menjalankan program X kali di terminal?
Saya membaca bahwa saya harus melakukan bin / bash txt, tapi saya tidak tahu bagaimana menjalankan X kali ini.
Bagaimana saya menjalankan program X kali di terminal?
Saya membaca bahwa saya harus melakukan bin / bash txt, tapi saya tidak tahu bagaimana menjalankan X kali ini.
Jawaban:
Anda bisa menggunakan xargsdan seq. Umumnya:
seq nr_of_times_to_repeat | xargs -Iz command
Sebagai contoh:
seq 10 | xargs -Iz xdotool click 1
akan menjalankan xdotool click 1perintah sebanyak 10 kali.
Buka Terminal dan gunakan bashperintah berikut :
for i in {1..5}; do xdotool click 1; done
Dengan sedikit verbosity dan 1s delay:
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
$. Itu hanya ada untuk menunjukkan prompt shell seperti sylvain@sylvain-ThinkPad-T430s:~$. Kami biasanya menambahkannya ke jawaban baris perintah untuk membedakan perintah dari hasilnya.
#!/bin/bash
x=1
while [ $x -le 10 ]
do
<command to run>
x=$(( $x + 1 ))
done
di mana 10 adalah berapa kali untuk menjalankan perintah
jika Anda perlu membangun sedikit istirahat:
#!/bin/bash
x=1
while [ $x -le 10 ]
do
<command to run>
sleep 1
x=$(( $x + 1 ))
done
Salin skrip ke file kosong, ganti <command to run>dengan xdotoolperintah Anda , simpan sebagai run_xdotool.sh, jalankan dengan perintah:
sh /path/to/run_xdotool.sh
Atau, Anda dapat membuatnya dapat dijalankan dan jalankan saja
/path/to/run_xdotool.sh
Karena Anda menyebutkan untuk menggunakannya untuk melakukan klik, cara termudah mungkin adalah dengan menggunakan xdotoolopsi pengulangan bawaan. Formatnya adalah:
xdotool click --delay <delay> --repeat <repeats> <button>
(delay in milliseconds between the clicks)
Untuk melakukan 10 klik mouse (tombol 1) berturut-turut, satu detik di antaranya, perintahnya adalah:
xdotool click --delay 1000 --repeat 10 1
Jika Anda memiliki GNU Parallel Anda dapat menjalankan:
seq 10 | parallel -N0 doit
Semua komputer baru memiliki banyak inti, tetapi sebagian besar program bersifat serial dan karenanya tidak akan menggunakan banyak inti. Namun, banyak tugas yang sangat dapat diparalelkan:
GNU Parallel adalah pemaralel umum dan membuatnya mudah untuk menjalankan pekerjaan secara paralel pada mesin yang sama atau pada beberapa mesin yang Anda miliki akses ssh.
Jika Anda memiliki 32 pekerjaan berbeda yang ingin Anda jalankan pada 4 CPU, cara langsung untuk memparalelkan adalah menjalankan 8 pekerjaan pada setiap CPU:

GNU Paralel sebagai gantinya memunculkan proses baru ketika proses selesai - menjaga CPU tetap aktif dan dengan demikian menghemat waktu:

Instalasi
Instalasi pribadi tidak memerlukan akses root. Ini dapat dilakukan dalam 10 detik dengan melakukan ini:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
Untuk opsi instalasi lain, lihat http://git.savannah.gnu.org/cgit/parallel.git/tree/README
Belajarlah lagi
Lihat lebih banyak contoh: http://www.gnu.org/software/parallel/man.html
Tonton video intro: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Ikuti tutorialnya: http://www.gnu.org/software/parallel/parallel_tutorial.html
Mendaftar untuk daftar email untuk mendapatkan dukungan: https://lists.gnu.org/mailman/listinfo/parallel
parallel -N0 doit ::: {1..10}
{1..10}bekerja di (t) csh / fish / ash, dan {1..10}konstruknya dibatasi oleh panjang baris perintah, jadi ini tidak akan berfungsi: {1..1000000000}sedangkan seq 1000000000akan bekerja dengan baik. Tetapi untuk sebagian besar situasi {1..10}akan berfungsi seperti yang diharapkan, dan saya sering menggunakannya juga.
Anda dapat menggunakan forloop gaya C yang memiliki keunggulan dibandingkan versi brace-expansion ( {1..5}) karena dapat menggunakan variabel untuk menentukan titik akhir. Versi mana pun lebih baik daripada menggunakan utilitas eksternal ( seq).
t=5
for ((x = 1; x <= t; x++))
do
xdotool click 1
done
Semua dalam satu baris:
t=5; for ((x = 1; x <= t; x++)); do xdotool click 1; done
Atau Anda mungkin dapat melakukannya tanpa loop (untuk utilitas dan fungsi spesifik ini):
xdotool click --repeat 5 --delay 50 1
Cukup Anda dapat menggunakan perintah arloji:
watch -n x <your command>
ubah x ke waktu dalam detik.
Contoh:
watch -n 1 xdotool click 1
Jadi, xdotool klik 1 akan diulangi setiap 1 detik, hentikan jika sudah selesai.