$ cat fromhere.sh
#!/bin/bash
FROMHERE=10
for i in $(seq $FROMHERE 1)
do
echo $i
done
$ sh fromhere.sh
$
为什么不起作用?
我找不到任何搜索谷歌的下行循环的例子......,甚至不是变量。为什么呢?
答案 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"不需要