【问题标题】:bash while loop won't stop itselfbash while 循环不会自行停止
【发布时间】:2013-03-12 14:44:03
【问题描述】:

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

./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 上,而这次是在 SUSE on vmware 上。

谢谢大家 戴维

【问题讨论】:

  • 你没有增加$i_loop

标签: bash loops while-loop


【解决方案1】:

你没有增加变量:

#!/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

【讨论】:

    【解决方案2】:

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

    let i_loop=$i_loop + 1 
    

    循环内的某处。

    【讨论】:

      猜你喜欢
      • 2021-08-18
      • 2019-07-29
      • 2015-12-30
      • 2015-08-06
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 2012-11-21
      • 2016-06-21
      相关资源
      最近更新 更多