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)条件判断的写法缩略图 Shell入门教程:流程控制(2)条件判断的写法](https://www.72715.net/wp-content/uploads/2023/05/4dc39a55a9d96fe8b38cec7694f0231e.png)
| -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表示结果。