shell编程之条件判断与分支控制
一、test测试语句
根据不同的test语句实现不同的操作


例子:判断命令行的执行参数是否为两个。如果不是两个就报错。
test $# -ne 2
示例程序
1 #!/bin/bash 2 3 if test $# -ne 2 4 then 5 echo "error" 6 else 7 echo "good" 8 fi
test语句也可以用以下方式
1 #!/bin/bash 2 3 if [ $# -eq 2 ] 4 then 5 echo "error" 6 else 7 echo "good" 8 fi
需要强调的是:第3行[ ]的前后必须有空格。
二、分支控制语句
shell:
分支:if-else-if case-esac
控制:while for until
分支 if-else-fi
框架:两种情况
if 判断条件(test测试语句)
then
xxxx
else
xxxx
fi
框架:三种情况
if 判断条件
then
xxxx
elif
then
xxxx
else
xxxx
fi
注意:
1.每一个if语句都要有fi作为结尾;
2.if判断条件为真,才能执行then后面的语句
3.if判断条件 等价于if判断条件;后面有没有分号都可以
例子:使用命令行传参,传递两个参数 if-elif-else-fi
如果num1>num2 ,num1>num2
如果num1=num2 ,num1=num2
如果num1<num2 ,num1<num2
if test $1 \< $2 then echo "$1 < $2" elif test $1 \> $2 then echo "$1 > $2" else echo "$1 = $2" fi
代码没有任何难度,只是需要注意 < >前面要加转义字符'\'
分支 case
框架
case 变量 in
xx)
xxxxxx;; //变量如果是xx,那么执行该语句
yy)
xxxxxx;;
zz)
xxxxxx;;
*)//其他情况
xxxx;;
esac
例子
1 #!/bin/bash 2 3 case $1 in 4 12) 5 echo "12";; 6 13) 7 echo "13";; 8 *) 9 echo "456";; 10 esac

浙公网安备 33010602011771号