shell脚本中if流程控制语句的应用

上篇关于测试语句的使用规则及相关使用方法,如果仅仅孤立使用时很难有其用武之地,当然在shell脚本中其实不可能孤立存在的,只有与条件语句和控制语句等搭配使用才能使其功能得到最大限度的体现,因此在日常使用中,其功能不容小觑。

一、控制流程

if控制流程可分为但分支if语句和多分支if语句,其使用语和C语言中有很多相似之处,具体用法如下文所述。

1.1但分支if语句结构:

1.2基本语法

    if 条件        或    if 条件;then   //分号表示两个命令写在一行并不相互影响,命令执行顺序是从左往右依次执行。
    then                 语句
    语句                 fi
    fi

例一.

#!/bin/bash
if [ $USER == root ];then
echo "error"
exit 127                        //此处的exit为错误输出提示符
fi

1.3双分支if结构

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
[[email protected] ~]# 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
[[email protected] ~]# sh if1.sh network
THE network is running
[[email protected] ~]# sh if1.sh NetworkManager
THE NetworkManager is running
[[email protected] ~]# service NetworkManager stop
Stopping NetworkManager daemon: [  OK  ]
[[email protected] ~]# sh if1.sh NetworkManager
THE NetworkManager is Stop
[[email protected] ~]#

二、多分支流程控制

2.1流程控制原理图

2.2语法结构

if  条件1 ; then
命令1
elif  条件2 ; then
       命令2:
elif  条件3 ; then
       命令3
……………………
else
       命令n
fi

例三.

#!/bin/bash
ch=China
J=Japan
read -p "请输入你的国别:" coun            //read实现人机交互指令通常与-p -t 和-n配合使用
if [ $coun == $ch ];then
        echo "您是中国人"
        elif [ $coun == $J ] ;then
        echo "你是日本人"
        else
        echo "您是其他人"
fi
[[email protected] ~]# ./if1.sh 
请输入你的国别:U.s         
您是美国人
[[email protected] ~]# ./if1.sh 
请输入你的国别:China
您是中国人
[[email protected] ~]#
[[email protected] ~]# 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
[[email protected] ~]# ./if.sh 
请输入要测试的文件:passwd
该文件是普通文件

以上列举出了关于if几种常用的流程控制语句,动手试试吧!!!

时间: 2024-09-29 04:10:56

shell脚本中if流程控制语句的应用的相关文章

shell编程中的流程控制语句

1.条件选择:if语句 ①单分支         if 判断条件;then             条件为真的分支代码         fi ②双分支         if 判断条件; then               条件为真的分支代码         else               条件为假的分支代码         fi ③多分支          if 判断条件1; then                条件为真的分支代码          elif 判断条件2; then

shell脚本中的逻辑判断,文件目录属性判断,if特殊用法,case语句

笔记内容: 20.5 shell脚本中的逻辑判断 20.6 文件目录属性判断 20.7 if特殊用法 20.8/20.9 case判断 笔记日期:2017-11-22 20.5 shell脚本中的逻辑判断 在所有的编程语言中都会有if语句来进行逻辑判断,所以在shell中也不例外. Shell的if语句的判断条件和其他编程语言一样写在if关键字的那一行,但是需要使用方括号括起来,并且变量和逻辑运算符以及方括号都要用空格隔开,这一点和其他的编程语言不一样,整个if语句块以fi关键字表示结尾,the

让你提前认识软件开发(22):shell脚本中的文件操作

第1部分 重新认识C语言 shell脚本中的文件操作 [文章摘要] 编写shell脚本时,经常会涉及到对文件的操作,比如从文件中读取一行数据.向文件追加一行数据等.完成文件读写操作的方法有很多,了解各种命令下文件操作的执行情况,有助于开发人员在不同使用场景下选择合适的命令. 本文以实际的shell脚本为例,介绍了对文件进行操作的不同方法,为相关开发工作提供了参考. [关键词] shell  文件操作  读写  效率 一.概述 在某些软件项目的需求文档中,要求程序一次性读或写的数据规模较大,可达1

20.5 Shell脚本中的逻辑判断;20.6 文件目录属性判断;20.7 if特殊用法;20.8 20.9 cace判断(上下)

扩展: select用法 http://www.apelearn.com/bbs/thread-7950-1-1.html 20.5 Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 1. 创建if1.sh测试脚本: [[email protected] ~]# vi if1.sh a=5,如果a大于3,满足这个条件,显示ok 添加内容: #!/bin/bash a=5 if [ $a -gt 3 ] then echo ok fi 2. 执行if1.sh脚本: [[e

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

在shell脚本中进行条件控制以及使用循环

转载请标明:http://www.cnblogs.com/winifred-tang94/ if条件语句语法: if [ 条件表达式 ] then 代码 else 代码 fi 注意:在上面的if条件语句中,if和 [ 之间要有空格,而条件表达式和两边的 [ ] 都要有空格,条件表达式不能紧挨着 [ 和 ]. if条件表达式以fi结束. Eg. 结果出现了以下问题: 原因是因为开头在#!后还要有一个/,加上/后解释器错误没有了,代码如下: 可是仍然有没有那个文件或目录的错误.对于这个错误我觉得是e

Linux shell脚本中shift的用法说明

Linux shell脚本中shift的用法说明 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). 示例1:依次读取输入的参数并打印参数个数: run.sh: #!/bin/bash while [ $# != 0 ];do echo "第一个参数为:$1,参数个数为:$#" shift done 输入如下命令运行:run.sh a b c d e f 结果显示如下: 第一个参数为:a

shell脚本中实现自动判断用户有无密码

在最近完成老师布置的作业的时候遇到了如何让shell脚本中的命令自动判断一个用户是否已设置密码的问题,虽然看似不是很难的一个问题,但是在这一功能实现的过程中却包含了许多细小的而重要的知识.刚开始小编对此很是头疼,虽然我们查看一个用户是否有密码并不是很难,直接cat /etc/shadow这个文件看看密码位是否有加密的字符就行了,但是让命令自己去判断和匹配就不是很顺利了,小编上网查看后,并没有得到很好的答案,大多数都是人工查看的答案,并不适用于shell脚本中自动的判断,所以在认真对比/etc/p

shell脚本中echo显示内容带颜色

转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 例如: echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注:  1.字背景颜