# shell学习笔记三  分支结构

- URL: https://www.yidoo.xyz/shell-study-notes-three-branch-structure
- 作者: 核动力蜗牛
- 发布时间: 2009-09-25
- 更新时间: 2009-09-25
- 分类: 技术笔记
- 标签: shell

分支结构主要是 if...else 和 case 这两种，下面用简单的练习代码说明下好了

```bash
#!/bin/sh
echo "Input two number A and B"
read A
read B
echo "A=$A"
echo "B=$B"
if [ $A -gt $B ]; then
	echo "A > B"
elif [ $A -lt $B ]; then
	echo "A < B"
else
       	echo "A = B"
fi
exit 0;
```

运行结果：

```bash
Input two number A and B
10
5
A=10
B=5
A > B
```

说到 if 肯定要有条件判断，在 shell 里面条件判断用的是[..] ，还有一点要注意的是 then 前面的那个分号，要事 then 和 if 在同一行的话就要加上

随便说下，记得以 fi 结尾

下面说下 case 结构：

```bash
#!/bin/sh
echo "Are you OK?:"
read ans
case "$ans" in
	yes | y | Y | Yes | YES ) echo "Yes,I'm OK." ;;
	no | n | N | No | NO ) echo "No,I'm bad." ;;
	* ) echo "Error input."
esac
```

运行结果：

```
Are you OK?:
yes
Yes,I'm OK.
```

本人一直认为 case 结构是一个很麻烦的结构，语法复杂又没什么优势，哎.....

注意点主要是条件末尾的）和语句块后面的;;  ，还有 case 匹配原则是是从上到下的，最后用一个\*号，相当与 C 里面的 default 吧
