shell 脚本之判断语句 if 详解

判断语句 if 是编写 shell 脚本时最常用的语句之一,用于根据条件判断执行不同的操作。本文将详细介绍 if 语句的用法、语法规则以及提供多个实例来说明。

if 语句的基本语法如下:

```

if condition

then

command1

command2

...

else

command3

command4

...

fi

```

其中 `condition` 是一个条件表达式,如果条件表达式为真(即返回值为 0),则执行 `then` 后面的命令;否则,执行 `else` 后面的命令。

下面我们逐一详解 if 语句的各个部分:

1. 条件表达式:条件表达式可以是以下几种形式:

- 字符串比较:使用 `=` 来判断是否相等,`!=` 来判断是否不等;

- 数字比较:使用 `-eq` 来判断是否相等,`-ne` 来判断是否不等,`-gt` 来判断是否大于,`-lt` 来判断是否小于,`-ge` 来判断是否大于等于,`-le` 来判断是否小于等于;

- 文件检查:使用 `-e` 来判断文件是否存在,`-f` 来判断是否为普通文件,`-d` 来判断是否为目录,`-x` 来判断是否可执行;

- 逻辑运算符:可以使用 `&&` 表示逻辑与,`||` 表示逻辑或;

- 多条件组合:使用括号 `()` 和逻辑运算符进行多条件组合。

2. `then` 块:如果条件满足,即条件表达式为真,将执行 `then` 块中的命令。`then` 块可以包含多个命令,每个命令后面使用 `;` 分隔。

3. `else` 块:如果条件不满足,即条件表达式为假,将执行 `else` 块中的命令。`else` 块可以包含多个命令。

4. `fi` 结束标记:用于结束 if 语句块。

下面我们通过多个实例来说明 if 语句的用法:

实例1:判断两个字符串是否相等

```shell

#!/bin/bash

str1="hello"

str2="world"

if [ "$str1" = "$str2" ]

then

echo "str1 and str2 are equal"

else

echo "str1 and str2 are not equal"

fi

```

实例2:判断一个文件是否存在

```shell

#!/bin/bash

file="/home/user/test.txt"

if [ -e "$file" ]

then

echo "$file exists"

else

echo "$file does not exist"

fi

```

实例3:判断一个数字是否大于等于 10

```shell

#!/bin/bash

num=15

if [ "$num" -ge 10 ]

then

echo "$num is greater than or equal to 10"

else

echo "$num is less than 10"

fi

```

实例4:判断一个目录是否为空

```shell

#!/bin/bash

dir="/home/user/mydir"

if [ -z "$(ls -A $dir)" ]

then

echo "$dir is empty"

else

echo "$dir is not empty"

fi

```

实例5:多条件组合判断

```shell

#!/bin/bash

age=25

gender="male"

if [ "$age" -gt 18 ] && [ "$gender" = "male" ]

then

echo "You are a male adult"

else

echo "You are not a male adult"

fi

```

以上实例仅为 if 语句的一些常见用法,你可以根据实际需求灵活运用 if 语句来实现不同的逻辑操作。希望本文对你理解 shell 脚本中的 if 语句有所帮助。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/

点赞(60) 打赏

评论列表 共有 0 条评论

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