博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS 7 Shell脚本编程第十一讲 if 语句和简单练习
阅读量:5864 次
发布时间:2019-06-19

本文共 2193 字,大约阅读时间需要 7 分钟。

hot3.png

Shell if 语句通过表达式与关系运算符判断表达式真假来决定执行哪个分支。有三种 if ... else 语句:

    if ... fi 语句;

    if ... else ... fi 语句;
    if ... elif ... else ... fi 语句。

首先需要记住if和fi成对出现。先看一个简单脚本。

#表达式语句结构if 
<条件表达式>
;then指令fi#上下两条语句等价if
<条件表达式>
then指令fi#判断输入是否为yes,没有判断其他输入操作[root@promote ~]# cat testifv1.0.sh #!/bin/bashread -p "please input yes or no: " inputif [ $input == "yes" ] ;thenecho "yes"fi#请勿直接回车[root@promote ~]# bash testifv1.0.sh please input yes or no: yesyes[root@promote ~]#

if语句条件表达式为真时,执行后续语句,为假时,不执行任何操作;语句结束。单分支结构。

再看一个稍微复杂代码。

[root@promote ~]# cat testifv1.1.sh #!/bin/bashread -p "please input yes or no: " input ;if [ $input == "yes" -o $input == "y" ] thenecho "yes"fi[root@promote ~]# vim testifv1.2.sh [root@promote ~]# bash testifv1.2.sh please input yes or no: yyes[root@promote ~]# [root@promote ~]# bash testifv1.2.sh please input yes or no: n[root@promote ~]#

if else 语句是双分支结构。含有两个判断结构,判断条件是否满足任意条件,满足if then语句块直接执行语句,else执行另一个语句。语句结构类比单分支结构。

[root@promote ~]# cat testifv1.3.sh read -p "please input yes or no: " input ;if [ $input == "yes" -o $input == "y" ] thenecho "yes"else echo "no yes"fi[root@promote ~]# bash testifv1.3.sh please input yes or no: nno yes[root@promote ~]# bash testifv1.3.shplease input yes or no: yesyes[root@promote ~]#

需要注意else 无需判断,直接接语句。

if else语句判断条件更多,可以称为多分支结构。

[root@promote ~]# cat testifv1.4.sh#!/bin/bashread -p "please input yes or no: " inputif [ $input == "yes" -o $input == "y" ]thenecho "yes"elif [ $input == "no" -o $input == "n" ]thenecho "no"elseecho "not yes and no"fi[root@promote ~]# [root@promote ~]# bash testifv1.4.shplease input yes or no: yesyes[root@promote ~]# bash testifv1.4.shplease input yes or no: yyes[root@promote ~]# vim testifv1.4.sh[root@promote ~]# bash testifv1.4.shplease input yes or no: nono[root@promote ~]# bash testifv1.4.shplease input yes or no: nno[root@promote ~]# bash testifv1.4.shplease input yes or no: ssssnot yes and no

再看几个简单实例。

#判断是否为文件#!/bin/bash	if [ -f /etc/hosts ] then echo "is file"fi#判断是否是root用户[root@promote ~]# cat isroot.sh#!/bin/bashif [ "$(whoami)"=="root" ]thenecho "root user"else"not root user"fi[root@promote ~]# bash isroot.shroot user

 

转载于:https://my.oschina.net/u/1011130/blog/3031384

你可能感兴趣的文章
查询引用 表,视图,的所有存储过程
查看>>
POJ 2449 Dijstra + A* K短路
查看>>
Z-XML团队年终博客整理
查看>>
Bootstrap学习
查看>>
高精度模版
查看>>
PHP中instanceof关键字
查看>>
页面刷新
查看>>
IE6下line-height失效:当文字与图片img在同一行中显示时line-height失效的解决办法...
查看>>
微软的云笔记:OneNote+SkyDrive
查看>>
2018.8.15提高B组模拟考试
查看>>
2018.10.4模拟考试
查看>>
jquery cookie操作
查看>>
第一篇文章
查看>>
LeetCode算法题-Power Of Three(Java实现-七种解法)
查看>>
将项目初始化到git服务器
查看>>
数据加密实战之记住密码、自动登录和加密保存数据运用DES和MD5混合使用
查看>>
性能测试相关问题【转】
查看>>
iOS学习03C语言循环结构
查看>>
RocketMQ之Windows下安装及发送接收实例
查看>>
Django 视图
查看>>