Shell编程之if语句(简单的计算器脚本编写)

前言(if语句的三种基本类型)

在简单的Shell脚本程序中,通过正确使用if语句(如果……那么……),能使Shell脚本具有一定的“判断力”,以根据不同的条件来完成不同的管理任务,if语句基本结构分三种类型。

一、单分支的if语句

对于单分支结构,只有在“条件成立”时会执行相应的代码,否则不执行任何操作。
在这里插入图片描述

1.1、语法格式
if 条件测试操作
then
	命令序列 
fi
1.2、单分支的应用举例

例如

(1)创建一个shell脚本jiaoben.sh。

[root@localhost opt]# touch jiaoben.sh

(2)用ls查看opt目录发现没有任何文件夹。

[root@localhost opt]# ls
jiaoben.sh  rh
[root@localhost opt]# vi jiaoben.sh 

(3)在jiaoben.sh中写入if语句:如果opt目录下没有aaa文件夹那么就创建aaa文件夹。

#!/bin/bash
if [ ! -e "/opt/aaa/" ]
        then
                mkdir /opt/aaa
fi

(4)执行脚本,查看opt目录发现aaa文件夹已经创建。

[root@localhost opt]# source jiaoben.sh 
[root@localhost opt]# ls 
aaa jiaoben.sh  rh
[root@localhost opt]# 

二、双分支的if语句

对于双分支结构,当“条件不成立时”,会进行else另一种操作。
在这里插入图片描述

2.1、 语法格式
if 条件测试操作
then 命令序列1
else 命令序列2
fi
2.2、 双分支的应用举例

例如

(1)我们在上面的jiaoben.sh脚本中写入if语句:如果opt目录下没有aaa文件夹那么就创建aaa文件夹,如果opt目录下已经有aaa文件那么就创建aaabbb文件夹。

#!/bin/bash
if [ ! -e "/opt/aaa/" ]
        then
                mkdir /opt/bbb
        else
                mkdir  /opt/aaabbb
fi

(2)先用ls查看opt目录,发现没有任何文件夹,执行jiaoben.sh 脚本,发现会创建aaa文件夹,当aaa文件夹已经存在时,再执行脚本,发现会创建aaabbb文件夹。

[root@localhost opt]# ls
jiaoben.sh  rh
[root@localhost opt]# source jiaoben.sh 
[root@localhost opt]# ls
aaa  jiaoben.sh  rh
[root@localhost opt]# source jiaoben.sh 
[root@localhost opt]# ls
aaa  aaabbb jiaoben.sh  rh
[root@localhost opt]# 

三、多分支的if语句

对于多分支结构,即在if条件中用elif嵌套多个条件。能够根据多个互斥的条件分别执行不同的操作。
在这里插入图片描述

3.1、语法格式
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else 
命令序列3
fi
3.2 、 多分支的应用举例

例如

(1)一个简单的计算器编写

#!/bin/bash
echo "----------------------------------"
aaa=欢迎使用XX的计算器
echo  "$aaa"
echo "----------------------------------"

  read -p  "请输入第一个整数:"  bbb
  read -p  "请输入你需要进行的运算,加法(+),减法(-),乘发(x),除法(/),取余(%):"  ccc
  read -p  "请输入第二个整数: " ddd
if [ $ccc = "+" ]
   then
       num=`expr $bbb + $ddd`
   echo  "$bbb+$ddd结果为$num"

elif [ $ccc = "-" ]
   then
       num=`expr $bbb - $ddd`

  echo  "$bbb-$ddd结果为$num"


elif [ $ccc = "x" ]
        then
                num=`expr $bbb \* $ddd`
   echo  "$bbb x $ddd 结果为$num"


elif [ $ccc = "/" ]
        then
                num=`expr $bbb / $ddd`
   echo  "$bbb / ddd结果为$num"

elif [ $ccc = "%" ]
        then
                num=`expr $bbb % $ddd`
  echo   "$bbb % $ddd结果为$num"
else 
   echo "请输入正确的运算"
fi

(2)执行脚本
在这里插入图片描述

注意事项

1,在shell中,then和if是分开的语句,如果要在同一行里面输入,则需要用分号将它们隔开。

2,[ ]表示条件测试,注意在“[”的前面和“]”的后面都必须要有空格。

3,如果单纯的使用>或者<号,系统会认为是输出或者输入重定向,虽然有可能结果显示正确,但是其实是错误的,需要在前面加上转意符号“ \ ”进行转意。

发布了43 篇原创文章 · 获赞 56 · 访问量 7923

猜你喜欢

转载自blog.csdn.net/weixin_42953006/article/details/103266154