异度部落格

学习是一种生活态度。

0%

shell学习笔记三 分支结构

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

#!/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;

运行结果:

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

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

随便说下,记得以 fi 结尾

下面说下 case 结构:

#!/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 吧