shell 脚本之判断语句 if 详解

Shell 脚本中的判断语句 if 是非常常见也是非常重要的语句之一。它可以让脚本根据不同的条件执行不同的操作,因此是编写高效的脚本的关键之一。本文将详细介绍 Shell 脚本中的 if 语句的语法,用法和示例。

## if 语句的语法

if 语句的一般语法如下:

```sh

if condition

then

command1

command2

...

fi

```

其中,condition 为判断条件,满足时执行 then 后的一系列命令,否则跳过。

如果需要判断多种不同情况的条件,可以使用 elif 和 else 关键字,语法如下:

```sh

if condition1

then

command1

command2

...

elif condition2

then

command3

command4

...

else

command5

command6

...

fi

```

上述 elif 和 else 块是可选的,可以省略。

## if 语句的用法

if 语句的 condition 部分可以使用以下运算符:

* 逻辑运算符:&&(与)和 ||(或)

* 关系运算符:==(等于)、!=(不等于)、-eq(等于)、-ne(不等于)、-gt(大于)、-lt(小于)、-ge(大于等于)和 -le(小于等于)

* 文件测试运算符:-s(文件有内容)、-f(是文件)、-d(是目录)等

除此之外,还可以使用其他 shell 命令获取返回值作为判断条件,例如 test 命令(与方括号 [] 等价)。

```sh

if test -f file.txt

then

echo "file.txt exists"

fi

```

注意,在 if 语句中,condition 部分后必须跟 then 关键字,并用一个空格隔开。

## if 语句的示例

下面是一些 if 语句的常见用法及示例。

### 判断字符串是否为空

```sh

if [ -z "$str" ]

then

echo "string is empty"

fi

```

### 判断文件是否存在

```sh

if [ -f file.txt ]

then

echo "file.txt exists"

fi

```

### 判断用户是否存在

```sh

if id "$user" >/dev/null 2>&1

then

echo "user exists"

fi

```

### 判断数字大小

```sh

if [ "$num1" -gt "$num2" ]

then

echo "num1 is greater than num2"

fi

```

### 使用多个条件判断

```sh

if [ -f file.txt ] && [ $num -gt 10 ]

then

echo "file.txt exists and num is greater than 10"

fi

if [ $score -lt 60 ] || [ $gender == "female" ]

then

echo "failed or female"

fi

```

### 使用 else 和 elif

```sh

if [ $score -ge 90 ]

then

echo "A"

elif [ $score -ge 80 ]

then

echo "B"

else

echo "C"

fi

```

## 总结

if 语句是 Shell 脚本中的重要语句之一,可以根据不同的条件执行不同的命令。在 if 语句中,condition 部分可以使用逻辑运算符、关系运算符、文件测试运算符等。本文对 if 语句的语法、用法和示例进行了详细的讲解,希望能帮助读者更好地使用 if 语句编写高效的 Shell 脚本。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(27) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部