帮助文档 > 常用语句

常用语句

发布时间:2024-09-06 16:55

在 shell 脚本中,语句用来控制代码的执行流程,常见的有循环结构语句和选择结构语句。其中,循环结构语句包括 for 和 while,选择结构语句包括 if、case 和 expect。本篇将对 shell 中常用的语句进行介绍。

【一】for 语句

for 语句是最常用的循环语句之一,通常用于已知循环次数的场景。for 语句有两种常见的形式,分别介绍如下:

形式一:

示例代码:


形式二:

参数说明:
①初始值:循环开始时变量的起始值。
②限制值:当变量处于限制值范围内时,循环继续执行。
③执行步阶:每次循环后变量的增量。

示例代码:

说明:`declare` 是 bash 的内建命令,用于声明 shell 变量并设置其属性。`declare` 也可以写作 `typeset`。

【二】while 语句

while 语句用于实现条件循环结构,表示当满足某个条件时执行循环。其语法格式如下:

在方括号内为判断条件,当条件满足时继续循环,直到条件不满足时退出循环。

示例代码:

【三】if 语句

if 语句是一种选择结构语句,主要有两种常见形式:`if...else` 语句和 `if...elif...else` 语句,分别用于两种或多种选择的场景。下面对这两种形式进行介绍。

 (1) `if...else` 语句
语法格式:


当条件表达式为真时,执行第一段代码;否则执行第二段代码。

示例代码:

(2) `if...elif...else` 语句
当条件表达式1为真时执行第一段代码;当条件表达式2为真时执行第二段代码;否则执行第三段代码。

注意:方括号内的条件表达式前后必须有空格,否则会报错。

条件表达式分类:

(1)文件表达式:
①`if [-f file]`: 如果文件存在。
②`if [-d ...]`: 如果目录存在。
③`if [-s file]`: 如果文件存在且非空。
④`if [-r file]`: 如果文件存在且可读。
⑤`if [-w file]`: 如果文件存在且可写。
⑥`if [-x file]`: 如果文件存在且可执行。

(2)整数变量表达式:
①`if [int1 -eq int2]`: 如果 int1 等于 int2。
②`if [int1 -ne int2]`: 如果 int1 不等于 int2。
③`if [int1 -ge int2]`: 如果 int1 大于或等于 int2。
④`if [int1 -gt int2]`: 如果 int1 大于 int2。
⑤`if [int1 -le int2]`: 如果 int1 小于或等于 int2。
⑥`if [int1 -lt int2]`: 如果 int1 小于 int2。

(3)字符串变量表达式:
①`if [$a = $b]`: 如果 a 等于 b。
②`if [$a != $b]`: 如果 a 不等于 b。
③`if [-n $a]`: 如果 a 非空(非 0)。
④`if [-z $a]`: 如果 a 为空。
⑤`if [$a]`: 如果 a 非空。

【四】case 语句

case 语句是一种多分支选择结构语句,可以根据变量的值匹配多个分支并选择其中一个分支执行。其语法格式如下:

当变量的值与第一个匹配值相等时,执行第一段代码;当变量的值与第二个匹配值相等时,执行第二段代码;当没有匹配时,执行默认分支。

示例代码:

【五】expect 语句

expect 是一种特殊的选择结构语句,用于在执行交互命令时捕捉特定的输出内容,然后输入相应的内容。

expect 首先接收命令的输出,与期望的字符串进行匹配,如果匹配成功则执行相应的发送操作。

使用 expect 语句时,需注意以下几点:
1. `expect eof` 和 `interact` 只能选择一个。
2. 执行脚本前需安装 expect 工具。
3. 执行脚本时需使用 `./xxx.sh` 形式。

示例代码:

本文导读

客户热线:13306992629

客户服务中心