条件选择if语句

单分支的if语句

if 判断条件; then

条件为真的分支代码

fi

 

    单分支if结构的执行流程:首先判断条件测试操作的结果,如果返回值为0表示条件成立,则执行then后面的命令序列,一直到遇见fi为止表示结束,继续执行其他脚本代码;如果返回不为0,则忽略then后面的命令序列,直接跳至fi行以后执行其他脚本代码。

条件选择if语句

 脚本代码

[root@localhost bin]# cat ifsingle.sh
#!/bin/bash
 
if [ `id -u` -eq 0 ]; then
         echo "The current is to use the administrator account."
fi

执行结果

[root@localhost bin]# ifsingle.sh
The current is to use the administrator account.

 

双分支的if语句

 

    对于双分支的选择结构来说,要求针对条件成立条件不成立两种情况分别执行不同的操作。

 

if 判断条件; then

条件为真的分支代码

else

条件为假的分支代码

fi

 

    双分支if结构的执行流程:首先判断条件测试操作的结果,如果条件成立,则执行then后面的命令序列1,忽略else及后面的命令序列2,直至遇见fi结束判断;如果条件不成立,则忽略then及后面的命令序列1,直接跳至else后面的命令序列2执行。直到遇见fi结束判断。

条件选择if语句

 脚本代码

[root@localhost bin]# cat checkip.sh
#!/bin/bash
# Description: Test whether or not the remote host can communication
 
read -p "Please input ip address: " ip
ping -c1 -W1 $ip &> /dev/null
if [ $? -eq 0 ]; then
         echo "Host is up"
else
         echo "Host is down"
fi

执行结果

[root@localhost bin]# checkip.sh
Please input ip address: 10.1.252.252 
Host is up
[root@localhost bin]# checkip.sh
Please input ip address: 10.1.252.22
Host is down

多分支

if 判断条件1

then

判断条件1为真的分支代码

elif 判断条件2

then

    判断条件2为真的分支代码

elif 判断条件n

then

判断条件n为真的分支代码

else

    判断条件n为假的分支代码

fi

if 判断条件1; then

判断条件1为真的分支代码

elif 判断条件2; then

    判断条件2为真的分支代码

elif 判断条件n; then

判断条件n为真的分支代码

else

    判断条件n为假的分支代码

fi

 

逐条件进行判断,第一次遇为“真”条件时,执行其分支,而后结束整个if语句

多分支if结构的执行流程:首先判断条件测试操作1的结果,如果条件1成立,则执行命令序列1,然后跳至fi结束判断;如果条件1不成立,则继续判断条件测试操作2的结果,如果添加2成立,则执行命令序列2,然后跳至fi结束判断;…..如果所有的条件都不满足,则执行else后面地命令序列n,直到fi结束判断。

实际上可以嵌套多个elif语句。If语句的嵌套在编写Shell脚本是并不常用,因此多重嵌套容易使程序结构变得复杂。当确实需要使用多分支的程序结构是,建议采用case语句要更加方便。

条件选择if语句

 脚本代码

[root@localhost bin]# cat checkgrade.sh
#!/bin/bash
# Description:
read -p "input you grade(0-100):" grade
if [ $grade -ge 85 ] && [ $grade -le 100 ]; then
         echo "you grade is very good!"
elif [ $grade -ge 60 ] && [ $grade -le 84 ]; then
         echo "you grade is good!"
elif [ $grade -gt 100 ]; then
         echo "error! please input 0-100!"
else
         echo "you so bad!"
fi

执行结果

[root@localhost bin]# checkgrade.sh
input you grade(0-100):80
you grade is good!
[root@localhost bin]# checkgrade.sh
input you grade(0-100):50
you so bad!
[root@localhost bin]# checkgrade.sh
input you grade(0-100):98  
you grade is very good!
[root@localhost bin]# checkgrade.sh
input you grade(0-100):33
you so bad!

原创文章,作者:cyh5217,如若转载,请注明出处:http://www.178linux.com/36012

(0)
cyh5217cyh5217
上一篇 2016-08-16 13:59
下一篇 2016-08-16 13:59

相关推荐

  • Hadoop简介

    Hadoop的概要介绍 Hadoop,是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。 简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。该平台使用的是面向对象编程语言Java实现的,具有良好的可移植性。 Hadoop的发展历史 &nbsp…

    Linux干货 2015-04-13
  • 双主模型的Nginx高可用负载均衡集群

    实验目的:使用keepalived实现Nginx的双主高可用负载均衡集群 实验环境:两台Nginx proxy(双主Nginx,各需要两块网卡,eth0连接内网,eth1连接外网)、两台web server(请求的负载均衡)、一台client用于验证结果。 注意:为了不影响实验结果,在实验开始前先关闭iptables和selinux 操作步骤: 一、配置IP…

    2017-05-13
  • LINUX-用户和组管理

    LINUX用户和组管理 linux用户分类:Username/UID      管理员:root,UID 0号,拥有最高权限;负责系统的启功、停止,安装新软件,               增加、删除用户,保证系统正常运转;     &nb…

    2017-05-30
  • 聊聊CentOS6的启动过程

    前言:     作为一个合格的运维人员,系统的启动过程我们需要牢记在心,此文不深入探讨,只求大致理解CentOS6的启动过程。 一张图带你了解CentOS6的启动过程 注意:图片放大查看效果更佳 上图各阶段详解 POST:计算机开机时BIOS对其各硬件的简单测试,测试各硬件的完整性 BootSqunce:加电自检后根据…

    Linux干货 2016-03-14
  • WORD文档格式要求与linux学习规划

    WORD文档格式要求 一、封面               1、活动名称(隶书,小初号字,加粗)               2、主办单位、策划日期(宋体、3号字) 二、目录    &nbs…

    Linux干货 2016-12-12
  • awk简介

    Awk介绍   报告生成器,格式化文本输出 gawk:模式扫描和处理语言 基本用法: Awk [option]  ‘program’ var=value file Awk [ option]  -F    programfile var =value file   F指明分隔符 Awk [option ]   ‘BEGIN’{ACTION…}  …

    Linux干货 2018-01-02