Shell入门教程:流程控制(2)条件判断的写法

1、if语句2、test命令3、case语句在Shell编程中,本文将介绍Shell中条件判断的写法。test命令在上面两个例子中使用到了test命令,case语句case语句也是一种条件判断结构。

在Shell编程中,条件判断是非常重要的一部分。通过条件判断可以实现程序的控制流程,让程序按照我们预期的方式运行。本文将介绍Shell中条件判断的写法。

if语句

if语句是最基本的条件判断语句,在Shell中也是用得最多的。它有两种形式:

第一种形式:

“`

if [ condition ]

then

command1

command2

fi

其中`condition`为一个表达式,如果该表达式返回0,则执行`then`后面的所有命令;否则直接跳过。

第二种形式:

else

command3

fi

这个结构和第一种类似,只不过加上了else分支。如果`condition`为真,则执行第一个块;否则执行else后面跟着的命令块。

test命令

在上面两个例子中使用到了test命令,它用来测试某些表达式是否成立,并返回0或1表示结果。test命令有很多选项可以使用,常见选项如下:

| 选项 | 描述 |

| :—–: | :——————————–: |

| -n | 字符串长度是否非零 |

| -z | 字符串长度是否为零 |

| -e | 文件是否存在 |

| -f | 是否是普通文件 |

| -d | 是否是目录 |

| -r | 是否有读权限 |

Shell入门教程:流程控制(2)条件判断的写法

| -w | 是否有写权限 |

| -x | 是否有执行权限 |

举个例子:

if [ ! -e /path/to/file ]

echo “file not exists”

echo “file exists”

这个例子中,`!`表示逻辑非,所以如果文件不存在,则返回真。

case语句

case语句也是一种条件判断结构,它可以根据一个变量的值来决定执行哪一个分支。case语句的基本形式如下:

case variable in

pattern1) command1;;

pattern2) command2;;

esac

echo “Please input a number between 1 and 5:”

read num

case $num in

1) echo “You inputted one”;;

2) echo “You inputted two”;;

3) echo “You inputted three”;;

4) echo “You inputted four”;;

5) echo “You inputted five”;;

*) echo “Invalid number”;;

这个例子中,用户输入一个数字后,根据不同的数字输出不同的信息。

在Shell编程中,条件判断是非常重要的一部分。if语句和case语句是最常用的条件判断结构,可以根据不同的情况来执行不同的命令。test命令则是用来测试某些表达式是否成立,返回0或1表示结果。