西甲

Shell常见知识(四)_a

2020-01-17 02:15:13来源:励志吧0次阅读

一. while 循环

while 命令格式

while 条件表

do

命令表

done

执行过程

Shell首先执行条件表,如果条件表的最后一条语句的退出状态为零,则执行盾环体内的命令表,执行完后,再检查条件表,如果退出状态为零将继续执行,如此循环往复直到条件表的最后一条语句的退出状态非零. 退出状态为零就是条件为真True.

举例说明 假如shell文件的内容如下:

Sum=0

i=0

while true #true是系统的关键词 表示真

do

i=`expr $i + 1`

Sum=`expr $Sum + $i`

if [ $i = "100" ]

then

break;

fi

done

echo $i $Sum

最后这个程序显示的是 100 5050

这个程序的运算就是将1到100加起来

下面将这个程序再改动一下

Sum=0

i=0

while [ $i != "100" ]

do

i=`expr $i + 1`

Sum=`expr $Sum + $i`

done

echo $i $Sum

改动后的程序运算结果和上面是一样 但程序比上面的要简练

在这个循环中还可以以until做为测试条件 它正好与while测试的条件相反,也就是当条件为假时将继续执行循环体内的语句,否则就退出循环体,下面还用这个例子.

Sum=0

i=0

until [ $i = "100" ]

do

i=`expr $i + 1`

Sum=`expr $Sum + $i`

done

echo $i $Sum

当i不等于100时循环 就是当条件为假时循环,否则就退出,而第一个例子是当i不等于100

时循环,也就是测试条件为真时循环.

二.for 循环

命令格式:

for 变量 in 名字列表

do

命令列表

done

这里的名字列表是一个由空格分隔的字符串列表,shell在执行for循环时每次依次从名字表中取出一个字符串赋给循环变量作为变量的值.

在写for语句时,也可以省略in 名字列表部分,这表示用当前的位置参数来代替这时的名字列表.

面举个例子,比如在你的电脑中有两个目录,一个是aa,一个是bb在这两个目录中有5个相同的文件,但其中一个目录中的一个或多个文件刚刚修改过,现在我忘记刚才改的是那几个文件 了,那么我靠已知的序码查找。

程序如下:

for File in a1 a2 a3 a4 a5

do

diff aa/$File bb/$File

done

下面再举一个不带名字列表的例子

for File

do

echo $Filw

done

文件内容保存在a.sh中 并可执行

我们在执行这个shell程序时命令行如下:

a.sh a1 a2 a3 a4 a5

执行结果如下:

a1

a2

a3

a4

a5

大家从这个例子中可以看到命令行的参数被逐一读入一次

三.循环控制语句

break 命令不执行当前循环体内break下面的语句从当前循环退出.

continue 命令是程序在本循体内忽略下面的语句,从循环头开始执行.

查看本文来源

孩子经常积食怎么调理
跌打损伤多久可以热敷
儿童止咳药哪种服用方便
小孩脾虚吃什么好
分享到: