吹静静

欢迎QQ交流:592590682

一、条件判断式语句

1、按照文件类型进行判断

两种判断格式

(1):[root@localhost ~]# test  -e  /root/install.log

 

 注:echo  $?  证明上一条命令执行

(2):[root@localhost ~]# [  -e  /root/install.log  ]

 

注:第一个判断命令如果正确执行,则打印“yes“,否则打印”no“。

注:中括号两边加上空格。

2、按照文件权限进行判断

 

(1):[root@localhost ~]# [  -w  cjj.txt  ]  &&  echo  "yes"  ||  echo  "no"

# 判断文件是否拥有写权限

3、两个文件之间进行比较

 

[root@localhost ~]# ln  /root/cjj.txt  /tmp/stu.txt

# 创建个硬连接

[root@localhost ~]# [  /root/cjj.txt  -ef  /home/stu.txt  ]  &&  echo  "yes"  ||  echo  "no"

# 查看两个文件是不是硬连接,inode号相同

4、两个整数之间比较

[root@localhost ~]# [  23 -ge  22]  &&  echo  "yes"  ||  echo  "no"

# 判断23是否大于等于22,当然是啦。

[root@localhost ~]# [  23 -le  22]  &&  echo  "yes"  ||  echo  "no"

# 判断23是否大于等于22,当然不是。

5、字符串判断

(1):[root@localhost ~]# name=cjj

# 给name变量赋值

[root@localhost ~]# [  -z  "$name"  ]  &&  echo  "yes"  ||  echo  "no"

no

# 判断name变量是否为空,因为不能为空,所以返回no

[root@localhost ~]# name=“”  

(2):aa=11

        bb=22

# 给变量aa和bb赋值

[root@localhost ~]# [  "$aa"  ==  "bb"  ]  &&  echo  "yes"  ||  echo  "no"

no

# 判断两个变量的值是否相等,明显相等,所以返回no

注:"aa"  "bb"  既是字符串也是整数,可以用 = 也可以用 == ,建议用 ==

6、多重条件语句

[root@localhost ~]# aa=11

[root@localhost ~]# [  -n  "$aa"  -a  "$aa"  -gt  23  ]  &&  echo  "yes"  ||  echo  "no"

[root@localhost ~]# no

# 判断变量aa是否有值,同时判断变量aa是否大于23

# 因为变量aa的值大于23,所以虽然第一个判断值为真,返回的结果也是假

二、单分支if语句

if  [  条件判断式  ];then

  程序

fi

或者:

if  [  条件判断式  ]

  then

  程序

fi

注意:

(1):if 语句使用 fi 结尾,和一般语言使用大括号结尾不同

(2):[  条件判断式  ] 就是使用 test 命令判断,所以中括号和条件判断式之间必须有空格

(3): then 后面跟符合条件之后执行的程序,可以放在 [ ] 之后,用" ; "分割.也可以换行写入,就不需要" ; "了

判断分区使用率

三、双分支 if 条件语句

if  [  条件判断式  ]

  then

    条件成立时,执行的程序

  else

    条件不成立时,执行的另一个程序

fi

例子:判断apache服务是不是在运行

注:提取含有httpd的行,剔除含有grep的行。

注:给脚本起名时要避开httpd这个关键字,不然会一直检测到有httpd服务进程

四、多分支if语句

if  [  条件判断式1  ]

  then

    当条件判断式1成立时,执行程序1

 elif  [  条件判断式2  ]

  then

    当条件判断式2成立时,执行程序2

……更多条件……

else

  当所有条件都不成立时,最后执行此程序

fi

五、多分支 case 条件语句

case 语句和 if…elif…else语句一样都是多分支条件语句,不过和 if 多分支条件语句不同的是,case 语句只能判断一种条件关系,而 if 语句可以判断多种条件关系。

case  $变量名 in

  “值1”)

    如果变量的值等于值1,则执行程序1

    ;;

  

  “值2”)

    如果变量的值等于值2,则执行程序2

    ;;

  … 省略其它分支 …

  *)

    如果变量的值都不是以上的值,则执行此程序

;;

esac

注:倾向于做选择列表

六、for 循环

for  变量  in 值1  值2  值3

  do

    程序

  done

简单 for 循环

 

 七、批量添加删除指定数量的用户

添加用户

删除用户

八、while循环和until循环

1、while循环

while循环是不定循环,也称作条件循环。只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止。这就和for的固定循环不太一样了。

while  [  条件判断式  ]

  do

    程序

  done

2、until循环

until循环,和while循环相反,until循环时只要条件判断式不成立则进行循环,并执行循环程序。一旦循环条件成立,则终止循环。

until  [  条件判断式  ]

  do

    程序

  done

 

 

posted on 2018-03-04 10:01  吹静静  阅读(209)  评论(0编辑  收藏  举报