本文介绍: 这篇博客主要是记录bash shell条件命令用法,便于日后复习

篇文章介绍下BASH shell中的条件相关命令,包括:if, case, while, until, for, breakcontinue。之前有介绍shell的其它基本命令,请参考BASH shell脚本篇1——基本命令

1. If语句

if语句用于顺序执行语句流程执行条件任务If语句通常用于在Bash脚本中做出决定。它们根据可能设置条件来决定是否运行一段代码。if语句语法格式几种如下

# 1. if语句基本格式:
# 注意:观察第一行使用空格,在第一行末尾使用分号。两者都必须使
#       用,if条件语句fi结尾
if [ condition ];  
then  
statements  
fi

# 2. if-else语法格式:
if [ condition ];  
then  
   <if block commands&gt;  
else  
   <else block commands&gt;  
fi


# 3. else-if语法格式:
if [ condition ];  
then  
<commands&gt;  
elif [ condition ];  
then  
<commands&gt;  
else  
<commands&gt;  
fi

if语句condition可以包含一些操作符处理复杂场景。以下是一些最常用的操作符

操作符 描述
! EXPRESSION 检查EXPRESSION是否为假
-n STRING 检查STRING的长度是否大于
-z STRING 检查STRING的长度是否为零(即为空)
STRING1 == STRING2 检查STRING1是否等于STRING2
STRING1 != STRING2 检查STRING1是否不等于STRING2
INTEGER1 –eq INTEGER2 检查INTEGER1在数值是否等于INTEGER2
INTEGER1 –gt INTEGER2 检查INTEGER1在数值是否大于INTEGER2
INTEGER1 -lt INTEGER2 检查INTEGER1在数值是否小于INTEGER2
d FILE 检查FILE是否存在并且它是一个目录
e FILE 检查FILE是否存在
r FILE 检查FILE是否存在,并授予读取权限
s FILE 检查FILE是否存在并且其大小大于零(表示它不为空)
-w FILE 检查FILE是否存在并授予写权限
x FILE 检查FILE是否存在并授予执行权限

2. case语句

Bash case语句是具有许多ELIF元素IF-THEN-ELSE的最简单形式。使用case语句使bash脚本更具可读性,并且更易于维护。它通常用于简化具有多种不同选择复杂条件case语句的语法如下

case expression in  
    pattern_1)  
        statements  
        ;;  
    pattern_2)  
        statements  
        ;;  
    pattern_3|pattern_4|pattern_5)  
        statements  
        ;;  
    pattern-n)  
        statements  
        ;;  
    *)  
        statements  
        ;;  
esac
# 包含语句的模式称为子句,并且必须以双分号(;;)终止
# 星号(*)用作定义默认情况的最终模式。当用作最后一种情况时,它用作默认情况

首先,case语句扩展表达式尝试每个包含模式匹配。找到匹配项后,将执行所有链接的语句,直到双分号(;;)为止。在第一个匹配项之后,case最后执行的语句的退出状态终止。
如果没有匹配模式,则case退出状态为零。否则,返回状态是已执行语句的退出状态。
如果使用默认的星号(*)模式,则在没有匹配模式的情况下将执行它。

3. for循环

bash shell脚本支持for循环以执行重复性任务。它有助于在字符串中的一系列单词数组中的元素迭代一组特定的语句。例如可以多次运行UNIX命令(或任务),也可以使用for循环读取处理命令列表

可以通过两种方式bash脚本上应用for循环。一种方法for-in,另一种方法是C语言语法for循环语法

# 方法1,list可以包含数字字符串等,以空格分隔
for variable in list  
do  
commands  
done
# 方法2
for (( expression1; expression2; expression3 ))  
do  
commands  
done

bash的三个表达式中没有“开始,条件和增量”循环时,它将变为无限循环。要终止Bash中的无限循环可以Ctrl + C

4. while循环

while循环可以定义控制流语句,只要所应用的条件为真,该语句就允许重复执行给定命令集例如可以运行多次echo命令,也可以逐行读取本文件,然后使用Bash中的while循环处理结果。while循环格式

while [ expressions ];  
do  
commands;  
multiple commands;  
done
# expressions可以是单条件或多条件

5. until循环

until循环用于根据表达式的布尔结果重复执行一组命令。仅在表达式值为真之前执行命令集。因此当表达式计算结果为false时,将迭代执行一组命令。当表达式首次为真时,循环终止。until循环与while循环相似,但是概念相反。until循环的语法格式

until [ expressions ];  
do  
command1  
command2  
. . .  
. . .
commandN  
done

6. breakcontinue

可以在循环中使用break语句来终止循环。可以在循环中使用continue语句来跳过特定条件下的特定语句。它告诉Bash停止执行循环的特定迭代并处理下一个迭代。

原文地址:https://blog.csdn.net/W1Z1Q/article/details/133411986

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_31678.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注