BASH 脚本 'sleep' 命令无效

BASH script 'sleep' command not working

我编写了一个脚本作为我的 Ubuntu 发行版的自动答题器。单击有效,但 '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 时间。

测试:

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

可以写成:

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

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

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

正如@cdarke 指出的那样,您的 shebang 行不正确,前两个字符必须是 #!,因此您可能得到 /bin/sh 到 运行 这个。