プログラムをX回実行する

プログラムをX回実行する

ターミナルでプログラムを X 回実行するにはどうすればよいですか?

bin/bash txt を実行する必要があると読みましたが、これを X 回実行する方法がありません。

答え1

使用できますxargsそしてseq。 一般的に:

seq nr_of_times_to_repeat | xargs -Iz command

例えば:

seq 10 | xargs -Iz xdotool click 1

xdotool click 1コマンドを10回実行します。

答え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)

1 秒間隔で 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

すべて1行に:

t=5; for ((x = 1; x <= t; x++)); do xdotool click 1; done

または、ループなしで実行できる場合もあります (この特定のユーティリティと関数の場合)。

xdotool click --repeat 5 --delay 50 1

関連情報