123 lines
2.2 KiB
Markdown
123 lines
2.2 KiB
Markdown
|
### 概览
|
|||
|
- if 结构
|
|||
|
- if else 结构
|
|||
|
- if elif else 结构
|
|||
|
- 层层嵌套
|
|||
|
|
|||
|
### if 结构
|
|||
|
```
|
|||
|
if [ condition ];then
|
|||
|
command
|
|||
|
command
|
|||
|
fi
|
|||
|
|
|||
|
if test condition;then
|
|||
|
command
|
|||
|
fi
|
|||
|
|
|||
|
if [[ condition ]];then
|
|||
|
command
|
|||
|
fi
|
|||
|
|
|||
|
# 等价于
|
|||
|
[ condition ] && command
|
|||
|
```
|
|||
|
|
|||
|
### if else 结构
|
|||
|
```
|
|||
|
if [ condition ];then
|
|||
|
command1
|
|||
|
else
|
|||
|
command2
|
|||
|
fi
|
|||
|
|
|||
|
# 等价于
|
|||
|
[ condition ] && command1 || command2
|
|||
|
```
|
|||
|
|
|||
|
```
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ cat if1.sh
|
|||
|
#! /bin/env bash
|
|||
|
|
|||
|
# S1 输入参数的第一个
|
|||
|
if [ "$1" = "hello" ];then
|
|||
|
echo $1
|
|||
|
else
|
|||
|
echo "world"
|
|||
|
fi
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ ./if1.sh
|
|||
|
world
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ ./if1.sh hello
|
|||
|
hello
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$
|
|||
|
```
|
|||
|
|
|||
|
```
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ ./if_read.sh
|
|||
|
请输入hello:hello
|
|||
|
world
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ ./if_read.sh
|
|||
|
请输入hello:world
|
|||
|
再次运行后,请输入hello
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ cat if_read.sh
|
|||
|
#! /bin/env bash
|
|||
|
|
|||
|
read -p "请输入hello:" str
|
|||
|
if [ "$str" = "hello" ];then
|
|||
|
echo "world"
|
|||
|
else
|
|||
|
echo "再次运行后,请输入hello"
|
|||
|
fi
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$
|
|||
|
```
|
|||
|
|
|||
|
```
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ ./if_read_oneline.sh
|
|||
|
please input hello:hello
|
|||
|
hello
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ ./if_read_oneline.sh
|
|||
|
please input hello:world
|
|||
|
please input hello!
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ cat if_read_oneline.sh
|
|||
|
#! /bin/env bash
|
|||
|
read -p "please input hello:" str; [ "$str" = "hello" ] && echo "hello" || echo "please input hello!"
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$
|
|||
|
```
|
|||
|
|
|||
|
### if elif else结构
|
|||
|
|
|||
|
```
|
|||
|
if [ condition1 ];then
|
|||
|
command1
|
|||
|
elif [ condition2 ];then
|
|||
|
command2
|
|||
|
elif [ condition3 ];then
|
|||
|
else
|
|||
|
command3
|
|||
|
fi
|
|||
|
```
|
|||
|
|
|||
|
```
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ cat if_elif.sh
|
|||
|
#! /bin/env bash
|
|||
|
|
|||
|
read -p "请输入hello" str
|
|||
|
if [ "$str" = "hello" ];then
|
|||
|
echo "hello"
|
|||
|
elif [ "$str" = "hello_elif" ];then
|
|||
|
echo "hello_elif"
|
|||
|
else
|
|||
|
echo "world"
|
|||
|
fi
|
|||
|
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ ./if_elif.sh
|
|||
|
请输入hellohello
|
|||
|
hello
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ ./if_elif.sh
|
|||
|
请输入hellohello_elif
|
|||
|
hello_elif
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$ ./if_elif.sh
|
|||
|
请输入hellonothing
|
|||
|
world
|
|||
|
me@me-EQ59:~/shell_demo/scripts/shell01$
|
|||
|
```
|