带有变量bash的下行循环

时间:2011-01-13 10:47:46

标签: bash

$ cat fromhere.sh
#!/bin/bash

FROMHERE=10

for i in $(seq $FROMHERE 1)
do
echo $i
done
$ sh fromhere.sh
$ 

为什么不起作用?
我找不到任何搜索谷歌的下行循环的例子......,甚至不是变量。为什么呢?

4 个答案:

答案 0 :(得分:14)

您应该使用seq:

指定增量
seq $FROMHERE -1 1

答案 1 :(得分:11)

为此,Bash有一个for循环语法。没有必要使用外部seq实用程序。

#!/bin/bash

FROMHERE=10

for ((i=FROMHERE; i>=1; i--))
do
    echo $i
done

答案 2 :(得分:1)

您可能更喜欢使用Bash 内置 Shell算术而不是生成外部 seq

i=10
while (( i >= 1 )); do
    echo $(( i-- ))
done

答案 3 :(得分:1)

循环播放(停止播放)

for ((q=500;q>0;q--));do echo $q ---\>\ `date +%H:%M:%S`;sleep 1;done && pkill mplayer
500 ---> 18:04:02
499 ---> 18:04:03
498 ---> 18:04:04
497 ---> 18:04:05
496 ---> 18:04:06
495 ---> 18:04:07
...
...
...
5 ---> 18:12:20
4 ---> 18:12:21
3 ---> 18:12:22
2 ---> 18:12:23
1 ---> 18:12:24

模式:

for (( ... )); do ... ; done

例如

for ((i=10;i>=0;i--)); do echo $i ; done

结果

10
9
8
7
6
5
4
3
2
1
0

with while: 第一步

AAA=10

然后

while ((AAA>=0));do echo $((AAA--));sleep 1;done

或: " AAA - "进入

while (( $((AAA-- >= 0)) ));do echo $AAA;sleep 1;done

"睡1"不需要