2

我得到了这个简单的脚本,它假设要创建一堆帐号,它应该有两个值:起始帐号和要创建的帐户数量。随着我们去增加帐号。例如:

./pre_v_test.sh 123 3 应该给

123

124

125

现在它这样做了,只有一个问题:完成后它不能停止。结果看起来更像这样:

....
Writing subsriber: 102145
lalala
Writing subsriber: 102145
lalala
Writing subsriber: 102145
lalala
....

你明白了。

下面是代码:

#!/bin/bash

i_loop="0"
while [ $i_loop -lt $2 ]
do

i_subscriber=`expr $1 + $i_loop`

echo Writing subsriber: $i_subscriber

#actual account details here, not relevent to the question 

echo "lalala"
done

我在这里查看了这个while循环的例子(http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_09_02.html)但是对于我的生活我无法发现差异,是什么让他工作和我的失败?此外,截至两个月前,该脚本正在运行。the 和 now 之间的唯一区别是,上次是在真正的 SUSE 上,而这次是在 vmware 上的 SUSE 上。

谢谢大家戴维

4

2 回答 2

2

您没有增加变量:

#!/bin/bash

i_loop=0

while [ $i_loop -lt $2 ]
do

i_subscriber=`expr $1 + $i_loop`

echo Writing subsriber: $i_subscriber

i_loop=`expr $i_loop + 1`

done
于 2013-03-22T16:45:37.103 回答
1

根本原因是您的变量 $i_loop 将永远 = 0,它总是小于 $2。
你需要添加

let i_loop=$i_loop + 1 

循环内的某处。

于 2013-03-22T16:47:40.793 回答