语法错误:循环变量不正确

时间:2015-05-20 18:51:23

标签: bash sh

我正在尝试编写一个可以在后台播放广播的脚本

#!/bin/sh

for (( i = 80 ; i <= 101; i++ )) 
 do 
  amixer cset numid=1 i$% sleep 60;
done 

但我有问题:

alarmclock-vol.sh: 3: alarmclock-vol.sh: Syntax error: Bad for loop variable

2 个答案:

答案 0 :(得分:9)

for (( expr ; expr ; expr ))中没有sh语法。如果要使用该语法,请切换到bash或ksh93。否则,sh的等价物是:

#!/bin/sh

i=80
while [ "$i" -le 101 ]; do
    amixer cset numid=1 "$i%"
    sleep 60
    i=$(( i + 1 ))
done 

答案 1 :(得分:0)

使用 bash 而不是 sh

bash 闹钟卷

我希望它会起作用