linux中的shell脚本管理(二)
|
2.1、单分支的if语句。 单分支的if语句是最简单的选择结构,这种结果只判断指定的条件,当”条件成立“时执行相应的操作,否则不做任何操作。单分支使用的语句格式如下。 if 条件测试命令 then 命令序列 fi 在上述语句中,首先通过判断条件测试命令的返回状态值是否为0(条件成立),如果是,则执行then后面的一条或多台可执行语句(命令序列),一直到fi为止表示结束,如果条件测试命令的返回值不为0(条件不成立),则直接去执行fi后面的语句。 2.2、双分支的if语句。 双分支的if语句使用了两路命令操作,在”条件成立‘、“条件不成立时分别执行不同的命令序列”。双分支使用的语句格式如下: if 条件测试命令 then 命令序列1; else 命令序列2; fi 在上述语句中,首先通过if判断条件测试命令的返回状态值是否为0(条件成立),如果是,则执行then后面的一条或多条可执行语句(命令序列1),然后跳转至fi结束判断,如果条件测试命令的返回状态值不为0(条件不成立),则执行else后面的语句,一直到fi表示结束。 2.3、多分支的if语句。 由于if语句可以根据条件测试命令的两种状态分别进行操作,所以能够嵌套使用,进行多次判断(如:首先判断某学生的得分是否及格,如及格则再次判断是否高于90分。。。)多重分支使用的语句格式如下。 if 条件测试命令1 then 命令序列1 elif 条件测试命令2 then 命令序列2 else 命令序列3 fi 上面的语法格式中只嵌套了一个elif语句,实际上if语句中可以嵌套多个elif语句。if语句的嵌套在编写Shell脚本时并不常用,因为多重嵌套容易使程序结构变得复杂。需要使用多重分支程序结构时,更多的是使用case语句来实现。 eg:检查"/var/log/messages'文件是否存在,若存在则统计文件内容的行数并输出,否则不做任何操作。 vi chklog.sh #!/bin/bash LogFile="/var/log/messages" if [ -f $LogFile ] ; then wc -l $LogFile fi sh chklog.sh //sh是bash的符号链接 eg:提示用户指定备份目录的路径,若目录已存在则显示提示信息后跳过,否则显示相应提示信息后创建该目录。 [root@master ~]# vi mkbak.sh #!/bin/bash read -p "What is your directory:" Bakdir if [ -d $Bakdir ] ; then echo "$Bakdir already exist." else echo "Bakdir is not exist,will make it." mkdir $Bakdir fi
eg:统计当前登录到系统中的用户数量,并判断是否超过三个,若是则显示实际数量并给出警告信息,否则列出登录的用户账号成名及所在终端。
[root@localhost ~]# vim chkuser.sh
#!/bin/bash
UserNum=`who |wc -l`
if [ $UserNum -gt 3 ] ; then
echo "Alert , too many login users ( Total: $UserNum )."
else
echo "Login users:"
who | awk '{print $1,$2}'
fi
本栏目更多精彩内容:http://www.bianceng.cn/OS/Linux/ (编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


