shell脚本中if流程控制语句的应用
2016-08-20 01:42
876 查看
上篇关于测试语句的使用规则及相关使用方法,如果仅仅孤立使用时很难有其用武之地,当然在shell脚本中其实不可能孤立存在的,只有与条件语句和控制语句等搭配使用才能使其功能得到最大限度的体现,因此在日常使用中,其功能不容小觑。
一、控制流程
if控制流程可分为但分支if语句和多分支if语句,其使用语和C语言中有很多相似之处,具体用法如下文所述。
1.1但分支if语句结构:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/15/61cf951ab39c4d746ab13fbeab4f6217.png)
1.2基本语法
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/15/925f32b4ac806a5438fca57fa9f2cf9d.png)
1.4双分支if语句语法结构
2.1流程控制原理图
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/15/511c13bcc46cecea9860f0c084ab5c07.png)
2.2语法结构
一、控制流程
if控制流程可分为但分支if语句和多分支if语句,其使用语和C语言中有很多相似之处,具体用法如下文所述。
1.1但分支if语句结构:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/15/61cf951ab39c4d746ab13fbeab4f6217.png)
1.2基本语法
if 条件 或 if 条件;then //分号表示两个命令写在一行并不相互影响,命令执行顺序是从左往右依次执行。 then 语句 语句 fi fi例一.
#!/bin/bash if [ $USER == root ];then echo "error" exit 127 //此处的exit为错误输出提示符 fi1.3双分支if结构
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/15/925f32b4ac806a5438fca57fa9f2cf9d.png)
1.4双分支if语句语法结构
if 条件1 ;then 命令1 else 命令2 fi例二.
#!/bin/bash ping -c 3 $1 &> /dev/null if [ $? -eq 0 ];then echo "THE HOST $1 is up" //该行中的$1为位置参数,具体可见脚本运行实例 else echo "THE HOST $1 is down" fi [root@node1 ~]# sh if1.sh 192.168.213.101 THE HOST 192.168.213.101 is up
#!/bin/bash service $1 status &> /dev/null if [ $? == 0 ];then echo "THE $1 is running" else echo "THE $1 is Stop" fi [root@node1 ~]# sh if1.sh network THE network is running [root@node1 ~]# sh if1.sh NetworkManager THE NetworkManager is running [root@node1 ~]# service NetworkManager stop Stopping NetworkManager daemon: [ OK ] [root@node1 ~]# sh if1.sh NetworkManager THE NetworkManager is Stop [root@node1 ~]#二、多分支流程控制
2.1流程控制原理图
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/15/511c13bcc46cecea9860f0c084ab5c07.png)
2.2语法结构
if 条件1 ; then 命令1 elif 条件2 ; then 命令2: elif 条件3 ; then 命令3 …………………… else 命令n fi例三.
#!/bin/bash ch=China J=Japan U=u.s read -p "请输入你的国别:" coun //read实现人机交互指令通常与-p -t 和-n配合使用 if [ $coun == $ch ];then echo "您是中国人" elif [ $coun == $J ] ;then echo "你是日本人" else echo "您是美国人" fi [root@node1 ~]# ./if1.sh 请输入你的国别:U.s 您是美国人 [root@node1 ~]# ./if1.sh 请输入你的国别:China 您是中国人 [root@node1 ~]#
[root@node1 ~]# vi if.sh
#!/bin/bash read -p "请输入要测试的文件:" file //操作者运行脚本时提示输入的文件 if [ -d $file ] ; then echo "该文件是目录文件" elif [ -f $file ] ; then echo "该文件是普通文件" elif [ -r $file ] ; then echo "该文件是可写文件" else echo "该文件权限未知" fi [root@node1 ~]# ./if.sh 请输入要测试的文件:passwd 该文件是普通文件以上列举出了关于if几种常用的流程控制语句,动手试试吧!!!
相关文章推荐
- shell脚本中if流程控制语句的应用
- shell脚本之-if流程控制语句和for循环语句的使用
- Linux的Shell脚本中IF流程控制语句的基本语法
- C++学习笔记 5th —— 万能流程控制if语句 续篇:扩展与实际应用
- shell脚本之流程控制语句
- Shell学习笔记(8)-流程控制之IF语句
- Shell脚本应用(五)if语句
- shell-6-退出状态与流程控制语句(if;test;case命令)
- Shell| 流程控制语句(if)和判断逻辑的几种写法(是否省略test)
- 几类脚本的流程控制语句(shell,python,lua)
- Linux学习之Shell--第三天:Shell流程控制-if语句
- Shell脚本应用(if语句的结构)
- shell流程控制语句之一if判断
- Linux学习之Shell--第三天:Shell流程控制-if语句
- shell脚本基础应用(二)if单分支,双分支,多分支语句
- shell脚本基础进阶(三)----流程控制语句
- Python脚本之流程控制if语句
- Shell脚本入门(六) - 条件控制语句: if
- SQL 流程控制语句 之一 IF…ELSE语句
- C语言中流程控制语句(if,switch,for,while,do-while,continue,break,return)