这东西在这里
n=0
x=1
while [ $n -lt 6 ]
do
n=$(( n+1 ))
echo "sasadgsad gsda $n" >> /home/test/rptest
if [ $n -eq 5 ]
then
while [ $x -le 5 ]
do
echo "end of line$x" >> /home/test/rptest
x=$(( x+1 ))
done
fi
done
输出这个东西
sasadgsad gsda 1
sasadgsad gsda 2
sasadgsad gsda 3
sasadgsad gsda 4
sasadgsad gsda 5
end of line1
end of line2
end of line3
end of line4
end of line5
sasadgsad gsda 6
第 11 行不应该在那里......当 n = 5 时,第一件事不应该完成吗?为什么它会创建最后一行?
感谢您的帮助 :)
我什至用 n=1 和 while [ $n -le 5 ] 尝试过
您的脚本具有适当的缩进:
您的外部循环从 0 运行到 5,即六次。由于您
n
在外部循环开始时进行更新,因此循环n
主体中的值将从 1 变为 6。什么时候n
是 5,你运行另一个循环,从 1 到 5 输出end of line...
。完成后,您仍然需要对外部循环进行一次迭代。另一种编写脚本的方法
bash
:这不会
n
有同样的问题,因为外部循环在到达 6时停止。但是,如果您只想将内部循环的输出附加到外部循环的输出之后,您也可以在彼此之后运行:
或者,仅对于这个简单的示例,