今天继续给大家介绍Linux基本知识,本文主要内容是Linux shell脚本的分支。
一、shell分支——if语句形式
在shell脚本中,我们通常使用if语句,使得脚本根据某些条件而执行不同的命令,这可以极大程度上使得脚本的功能更加强大和灵活。
if语句就是shell脚本中实现分支的命令,if脚本有单分支、双分支和多分支三种形式,这三种形式格式如下:
if单分支:
if 表达式; then
执行语句
fi
if双分支:
if 表达式; then
执行语句
else
执行语句
fi
if多分支:
if 表达式; then
执行语句
elif 表达式;then
执行语句
elif 表达式;then
执行语句
…………
else
执行语句
fi
二、shell分支——if表达式
在if脚本中,我们需要写if表达式来表明if脚本的条件,if表达式常常使用中括号,表达式可以包含的内容包括逻辑表达式、特殊的运算比较符(不是+、-、*……)即特殊的判断参数等。
if表达式中常见的判断运算符如下:
-f 判断文件是否存在
-d 判断目录是否存在
-z 判断是否是空字符串
if表达式中常见的逻辑运算符如下:
-eq 比较两边是否相等
-ne 比较两边是否不相等
-lt 比较左边是否小于右边
-gt 比较左边是否大于右边
-le 比较左边是否小于等于右边
-ge 比较左边是否大于等于右边
-a 或 && 左右两边连接两个逻辑表达式,该符号表示逻辑与
-o 或 || 左右两边连接两个逻辑表达式,该符号表示逻辑或
需要特别注意的是,上述符号都应用于if表达式是一个中括号“[]”的情景,如果if表达式使用的是小括号,则括号内使用的是算术运算符,如+、-、*等等。下面会对shell脚本中的括号进行详解。
三、shell分支——if括号
在shell脚本中,弄明白括号的问题可以帮助我们看懂别人写的脚本,至于当自己写脚本的时候,完全可以挑选自己喜欢的格式。shell中有五种类型的括号,它们分别是大括号、双中括号、中括号、双小括号、小括号
1、大括号
大括号一般用于命令的拓展,比如touch命令可以借助大括号一次性创建多个文件,命令是:
touch file{1..10..2}
在shell脚本中,如果定义有函数,则函数的执行语句也需要用大括号包括起来。
2、中括号
中括号的使用就如同本文第二章介绍的用法,为if语句条件表达式所用
3、双中括号
双中括号支持中括号的在本文第二节的用法,同时也支持==、>、<等的数学逻辑运算符,即双中括号有更高的容错性,格式上更加灵活。
4、双小括号
双小括号也可以用于if表达式,且支持==、>、>=、&&等符号,比较符合C语言编程习惯。
5、小括号
小括号常用于for循环,指定循环条件,也常备用于指定数组,另外,小括号以内还可以放命令, 命令之间需要用分号隔开。
四、shell分支——脚本示例
最后,写几个简单的shell脚本示例,提供给初学者学习。
(一)判断指定目录是否存在
#!/bin/bash
# 2021-10-13
# Author:Pzz
# Used to practice shell script
# This script is used to find whether the dir is existed
if [ -d /var/www/html ];then
echo "The web dir is existed"
fi
if [ ! -d /var/www/hdjksjk ];then
echo "The other dir is not existed"
fi
(二)比较两个数大小
#!/bin/bash
# 2021-10-13
# Authored bu Pzz
# This script is uesed to find the bigger numa
read -p "Please input the first number:" NUM1
read -p "Please input the second number:" NUM2
if [ $NUM1 -gt $NUM2 ];then
echo "The $NUM1 is larger"
else
echo "The $NUM2 is larger"
fi
~
(三)测试成绩定级
#/bin/bash
# 2021-10-13
# Authored by Pzz
# This script is used to get the grade
# This script din't test the user's input
SCORE=$1
if [ $SCORE -gt 90 ];then
echo "A"
elif [ $SCORE -gt 75 ];then
echo "B"
elif [ $SCORE -gt 60 ];then
echo "C"
else
echo "D"
fi
欢迎持续关注我的博客,将会持续更新更加复杂有用的shell脚本!!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
本文详细讲解了Linux shell脚本中的if语句及其不同形式,包括单分支、双分支和多分支,并介绍了if表达式中常用的判断和逻辑运算符。此外,还剖析了各种括号在脚本中的作用,通过实例演示如何编写和理解复杂的shell脚本。
29万+

被折叠的 条评论
为什么被折叠?



