bash while loop赢了';别停下来
我得到了一个简单的脚本,它假设创建一组帐号,它应该包含两个值:起始帐号和创建多少帐号。在进行时增加帐号。例如: /pre_v_test.sh 123 3 应该给 123 124 125 现在它这样做了,但只有一个问题:它不能在完成后停止。 结果看起来更像这样:bash while loop赢了';别停下来,bash,loops,while-loop,Bash,Loops,While Loop,我得到了一个简单的脚本,它假设创建一组帐号,它应该包含两个值:起始帐号和创建多少帐号。在进行时增加帐号。例如: /pre_v_test.sh 123 3 应该给 123 124 125 现在它这样做了,但只有一个问题:它不能在完成后停止。 结果看起来更像这样: .... Writing subsriber: 102145 lalala Writing subsriber: 102145 lalala Writing subsriber: 102145 lalala .... 你明白了 代码如下
....
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循环的例子(),但就我个人而言,我看不出有什么不同,是什么让他的工作和我的工作失败了?另外,两个月前,这个脚本还在运行。与现在的唯一区别是,上次是在真正的SUSE上,这次是在vmware上的SUSE上
谢谢大家
davy您没有增加变量:
#!/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
根本原因是您的变量$i_循环将永远=0,它总是小于$2。
你需要添加
let i_loop=$i_loop + 1
somwhere inside loop.您没有增加
$i\u loop