linux下都case和if的例子,循环2-if与case语法

本文详细介绍了Shell脚本中的if和case语句的使用方法。包括if语句的各种结构如单分支、双分支及多分支结构,并展示了如何通过条件表达式进行逻辑判断。此外,还介绍了case语句的语法及其应用场景,通过一个简单的数值判断示例帮助读者理解其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# **一、if语法结构**

## **1.单分支结构**

```

if < 条件表达式 >

then

指令

fi

```

或者

```

if < 条件表达式 >;then

指令

fi

```

## **2.双分支结构**

```

if < 条件表达式 >

then

指令1

else

指令2

fi

```

## **3.多分支结构**

```

if < 条件表达式1 >

then

指令1

elif < 条件表达式2 >

then

指令2

elif < 条件表达式3 >

then

指令3

else

指令4

fi

```

>条件表达式可以是test、[]、[[]]、(())等,也可以直接使用命令作为条件表达式

每个if语句都以if开头,并带有then,最后以fi结尾

多分支每个elif后也要带then,但else后不带then

## **4.条件表达式和if语句的变换**

符号条件表达式能够转换为if语句,如下

```

[ -f /etc/passwd ] && echo 1 || echo 0

```

等同于

```

if [ -f /etc/passwd ]

then

echo 1

else

echo 0

fi

```

> 其他条件表达式类似

# **二、case语句说明和语法**

## **1.说明**

* case语句相当于多分枝的if/elif/else条件语句,但看起来更工整,常用于实现系统服务启动脚本等应用中

* case主要是写服务的启动脚本,适用范围较窄

* if取值判断、比较,应用面比case更广,几乎所有case语句都可以用if实现

## **2.语法**

```

case "变量" in

值1)

指令1...

;;

值2)

指令2...

;;

*)

指令3...

esac

```

说明:

* 如果变量的值等于值1时,则执行该值后面的指令1直到遇到`;;`后停止,然后跳出case语句,执行case语句后面的其他指令

* 如果没有匹配到任何值,则执行`*)`后面的指令,该指令通常是提示用户的指令,最后一个值可以省略双分号

* 表达式值支持管道、正则等多功能匹配

## **3.简单实践**

根据用户输入判断用户输入的哪个数值,并输出,如果非数值,则提示错误

* `cat /server/scripts/b7.sh`

```shell

#!/bin/bash

read -p "pls input num[1-9]" num

case "$num" in

1)

echo "the num is 1"

;;

2)

echo "the num is 2"

;;

[3-9])

echo "the num is $num"

;;

*)

echo "pls input num,3q"

esac

```

**执行脚本查看结果:**

> * `sh /server/scripts/b7.sh `

pls input num[1-9]1

the num is 1

> * `sh /server/scripts/b7.sh`

pls input num[1-9]3

the num is 3

> * `sh /server/scripts/b7.sh`

pls input num[1-9]g

pls input num,3q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值