BASH脚本'睡眠'命令不起作用

时间:2017-09-11 17:40:48

标签: linux bash scripting automation xdotool

我编写了一个脚本,作为我的Ubuntu发行版上的自动点击工具。点击有效,但是“睡觉”。命令似乎没有正常工作。如果我取出点击并从终端运行它,那么睡眠按预期工作。但是当我将它绑定到一个快捷方式并在玩游戏时运行它并没有睡觉它似乎只是一直点击。

 #!/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个时间。

1 个答案:

答案 0 :(得分:0)

测试:

[[ $(( $counter % $break_at )) == 0 ]]

可写:

[ $(( $counter % $break_at )) -eq 0 ]

[[ x == y ]]是特定于bash的,并测试字符串相等性。

[ x -eq y ]适用于任何POSIX shell并测试整数相等。

正如@cdarke所说,你的shebang行不正确,前两个字符必须是#!,所以你可能会/bin/sh来运行它。