流程控制使程序员具有人工智能,可根据不同的情况,做不同的处理,而且指定执行重复的程序区域,展现

程序的生产力。

命令执行完毕的状态返回值变量是$?,执行成功返回0,不成功返回非零

例子:

if  grep -q  ^ols3 /etc/passwd; then

echo  'ols3 这个账号存在'

fi

寻找/etc/passwd  文件中是否有ols3 这个关键词出现在行首, -q: 安静,不输出匹配到行,只返回退出状态,

返回0表示找到匹配的行。


1.  if-then-else

if   条件测试;then

命令区域

fi

2. if  条件测试;then

命令区域1

else

命令区域2

fi

例子:

if [ -d  /root/tmp  ];then

echo '/root/tmp  目录存在'

else

echo ' /root/tmp  目录不存在'

fi

注:[  -d /root/tmp ]  检测目录是否存在

3.if的完整语法

if 条件测试1;then

    命令区域1

elif  条件测试2;then

    命令区域2

else

    命令区域3

fi

4.case   的语法、

case  待测项 in  

        样式串行)  命令区域 1;;  注意:命令区域结束前的

        样式串行)  命令区域 2;;

..........

*) 命令区域;;

esac

5 for 循环

   for   变量 in 串行

   do

       命令区域


    done

 例子: for  i  in  1 2 3 4 5

           do

   echo  $i

   done

例子    for 变量  in $@       注意:$@ 代表命令行所有的参数

do

命令区域

done

for  循环经常用在分割字符串行,取出字段元素值。 $( 命令行)

-------------------------------------------------------------

for line in $(cat cvsfile.txt)   取出文件字段,做为条件

-------------------------------------------------------------

dir="/root"

for f in $(ls $dir)

for  循环经常用在处理目录中的文件  

-------------------------------------------------------


for 循环的另外一种形式,

for (( i=1; i<=10;i=i+1 ))

do

done

-----------------------------------------------------------

无穷循环

for (( ;1;))

do

命令区域

done

终止 ctrl+c

-----------------------------------------------------------

while   循环

while  条件测试

do

命令区域

done

---------------------------------------------------------

while ((i<=10))

do

let sum+=i

let ++i

done

echo $sum

注意:sum+=i   sum=sum+i  效果是一样

-------------------------------------------------------

使用while 循环,读取文件内容

while 循环,经典的用法是搭配转向输入,读取文件的内容

#!/bin/bash

while read line

do

echo $line

done < cvsfile.txt

----------------------------------------

while 无穷循环

while ((1))

或者

while true

或者

while :

---------------------------------------------

until  循环

while 循环的条件测试是测真值,until 循环则是测假值

until 条件测试 如果传回为假(传回的值不为0)

do

命令区域

done

------------------------------------------------------