Shell for/while/util循环

1.while循环

while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。
例句:
#!/bin/bash
i=0
while [ $i -le 10 ]
do
issdcm -drive_index KaTeX parse error: Expected group after '_' at position 16: i -smart >smart_̲i.log
echo i i = i i= ii=[ $i+1 ]
done

备注:
-eq: 相等
-ne: 不等;
-gt: 大于;
-lt: 小于;
-ge: 大于、等于
-le:小于、等于

2.for循环

列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。
例句:
#!/bin/bash
for index in 0 1 2 3
do
issdcm -drive_index KaTeX parse error: Expected group after '_' at position 20: …x -smart >smart_̲index.log
done

3.util循环

until 循环执行一系列命令直至条件为 true 时停止。until 循环与 while 循环在处理方式上刚好相反。一般while循环优于until循环,但在某些时候,也只是极少数情况下,until 循环更加有用。
例句:
#!/bin/bash
a=5
until [ $a -lt 3 ]
do
echo a a = a a= aa=[ $a - 1 ]
done

输出:
[root@localhost try]# ./util.sh
5
4
3

4.break和continue命令

break命令允许跳出所有循环(终止执行后面的所有循环);continue命令会跳出当前循环。在嵌套循环中,这两个命令还有较高级的用法:

语法:
break 2 #跳出2层循环
continue 2

例句:
#!/bin/bash
for i in “a b c d”
do
echo "$i "
for j in seq 10 #注意`和 '的区别
do
if [ j − e q 5 ] ; t h e n b r e a k f i e c h o " j -eq 5 ];then break fi echo " jeq5];thenbreakfiecho"j "
done
done

5.While死循环

机制:如果while后的命令执行成功,或条件真,则执行do和done之间的语句,执行完成后,再次判断while后的命令和条件;如果while后的命令执行失败,或条件为假,循环结束

例如:
while date
do
echo “aa”
done

特例:无条件循环
while true
do
语句
done

while可以用作无穷循环,很多地方都用到无穷循环。一个无穷循环如下所示:
while(true) {
循环内容;

}

终止循环

无穷循环可以由自己循环中的某个条件式来结束。下面是一个循环内部终止的例子:
while(true) {
语句;
if(条件式)
break; // 跳离循环

}

###当123.log非空时跳出死循环
#!/bin/bash
while true
do
lspci -vvv|grep Non-V >123.log
if [ -s ./123.log ];then
break
fi
done
echo “Jump out of the endless loop”

http://www.mamicode.com/info-detail-1042298.html

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页