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 "
j−eq5];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”