Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash while loop赢了';别停下来_Bash_Loops_While Loop - Fatal编程技术网

bash while loop赢了';别停下来

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 .... 你明白了 代码如下

我得到了一个简单的脚本,它假设创建一组帐号,它应该包含两个值:起始帐号和创建多少帐号。在进行时增加帐号。例如:

/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循环的例子(),但就我个人而言,我看不出有什么不同,是什么让他的工作和我的工作失败了?另外,两个月前,这个脚本还在运行。与现在的唯一区别是,上次是在真正的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