私は自分のUbuntuディストリビューションでオートクリッカーとして動作するスクリプトを書いています。クリックは機能しますが、「スリープ」コマンドは正しく機能していないようです。私がクリックを取り出して端末から実行すると、スリープは意図どおりに機能します。しかし、私はそれをショートカットにバインドし、ゲームをプレイしている間にそれを実行すると、スリープ状態にならず、単にクリックし続けるように見えます。BASHスクリプトの 'sleep'コマンドが機能しない
#!/bin/bash
counter=0 #number of iterations executed
loop_to=1800 #number of iterations to do
break_interval=10 #time to break, in seconds
click_interval=.5 #time between iterations, in seconds
break_at=15 #how many iterations before taking a break
while [ $counter -lt $loop_to ]; do
xdotool click 1
sleep $click_interval
echo $counter
let counter=counter+1
if [[ $(($counter % $break_at)) == 0 ]]; then
sleep $break_interval
echo I slept
fi
done
最も重要な睡眠はbreak_intervalです。これは、x時間の間、オートクリッカーを一時停止することです。
ショートカットを使ってスクリプトを実行すると、スクリプトは 'bash'によって実行されますか? '[['は 'bash'に依存する唯一のものです。 – chepner
最初の行に '#!'の前に空白があるようです。つまり、スクリプトが必ずしも 'bash'の下で実行されるわけではありません(どのプログラムがそれを起動するかによって異なります)。 – cdarke
bashを使用して実行されていませんでした。複数の理由から私は拘束力にアクセスできないと思っていましたが、私は友達のために書いたスクリプトだけでした。彼は "sh"を使ってそれを実行していたので、BASH固有のものは動作しなかった。助けてくれてありがとう! – Nathan