linux_shell脚本笔记之二

第二章shell脚本(二)

Test文件测试的常见选项有

-d:测试是否为目录(directory

-e:测试目录或文件是否存在(exist

-f:测试是否为文件(file

-r:测试当前用户是否有权限读取(read

-w:测试当前用户是否有写入权限(write

-x:测试是否设置有可执行权限(excute

Test常用表达示有两种

test 表达示                 [表达示]

常用的表达示为后者因为更加贴近编程习惯,如下

[root@localhost ~]# [ -d /media/Server/ ] ;  echo $?    #配合$?查看,返回值为非0说明没有这个目录

1

[root@localhost ~]# ld /media/Server/                   #验证

ld: /media/Server/: No such file: No suchfile or directory

 

 

 

整数值比较包含的选项

-eq:等于(equal

-ne:不等于(not equal

-lt:小于(lesser than

-gt:大于(greater than

-le:小于等于(lesser or equal

-ge:大于等于(greater or equal

整数值比较在脚本中应用较多,如判断已登录用户数量。

[root@localhost shelltest]# stati=`who | wc-l`

[root@localhost shelltest]# [ $stati -le 5 ]&& echo "Active users less than 5 peopl"

Active users less than 5 peopl

字符串比较

=:第一个字符串与第2个字符串相同

!=:第1个字符串与第2个字符串不相同,“!”为取反的意思

-z:检查字符是否为空。

逻辑测试

&&:逻辑与,表示而且的意思,当两个条件都成立时才会返回值为0,使用test测试时“&&”可以改为“-a”

||:逻辑或,表示或者的意思,只要前后有一个条件成立,整个测试命令的返回值即为0Test时可改为“-o”

!:逻辑否,表示的意思,只有当指定条件不成立时,整个测试命令的返回值即为0

&&做例子:

[root@localhost ~]# [ 6 -ne 4 ] &&echo "yes"

Yes

If 语句

if语句的选择结构分为三种基本类型

  1. if单分支结构,格式如下

if 条件测试操作

then

           命令序列

fi

spacer.gif

 

 

单分支案例

[root@localhost ~]# vim test.sh

#!/bin/bash

#########if单分支案例############

who=`who |wc -l`

if [ $who -le 5 ];then

      echo "Active users less than 5people"

fi

[root@localhost ~]# sh test.sh

Active users greater than 5 people

 

双分支If语句

双分支if语句要求针对条件成立条件不成立两种情况执行两种不同的操作

spacer.gif

[root@localhost ~]# vim test.sh

#!/bin/bash

#########if多分支案例############

who=`who |wc -l`

if [ $who -le 5 ];then

      echo "Active users less than 5people"

                   else

  echo "Active users greater than people"

fi

[root@localhost~]# sh test.sh

Activeusers greater than 5 people

多分支if语句

多分支if语句根据测试结果,执行不同的操作,所以能够嵌套使用,进行多次判断。格式如下:

  1. if单分支结构,格式如下

if 条件测试操作1

then

           命令序列1

elif 条件测试操作2

then

           命令序列2

         Else

                   命令序列3

fi

spacer.gif

多分支案例:

[root@localhost ~]# vim Scores_query.sh

#!/bin/bash

###########分数优、良、差查询脚本###########

read -p "  请输入您的分数(1-100):" score

if [ $score -ge 85 ] && [ $score -le100 ]

then

       echo " 您的分数为$score, 优秀"

elif [ $score -ge 70 ] && [ $score -le84 ]

then

       echo " 您的分数为$score,"

elif [ $score -ge 60 ] && [ $score-le 69 ]

then

       echo " 您的分数为$score, 为及格"

elif [ $score -le 59 ]

then

       echo " 您的分数为$score, 为不及格"

else

       echo " 请输入1-100之间的分数"

fi

 

[root@localhost ~]# sh Scores_query.sh

  请输入您的分数(1-100):100

 您的分数为100, 为优秀

[root@localhost ~]# sh Scores_query.sh

  请输入您的分数(1-100):80

 您的分数为80, 为良


你可能感兴趣的:(linux;shell脚本)