系统相关
首页 > 系统相关> > shell 双多分支if条件句语法

shell 双多分支if条件句语法

作者:互联网

比较两个数大小的语法:
[root@dbserver ~]# cat if_01_01
read -p "please input two number:" a b
if [ $a -gt $b ]
then
echo "yes,$a > $b"
elif [ $a -eq $b ]
then
echo "yes,$a = $b"
else
echo "yes,$a < $b"
fi
执行结果:
[root@dbserver ~]# sh if_01_01
please input two number:4 5
yes,4 < 5
[root@dbserver ~]# sh if_01_01
please input two number:4 4
yes,4 = 4
[root@dbserver ~]# sh if_01_01
please input two number:5 4
yes,5 > 4

传参程序,目的在于判断输入值的合法性,首先是参数的个数是否满足两个.
[root@dbserver ~]# vi if_01_01.sh
#!/bin/bash
a=$1
b=$2
if [ $# -ne 2 ] ----说明:$# 获取当前shell命令行中参数的总个数

then
echo "Usage:sh $0 num1 num2"
exit
fi
if
[ $a -gt $b ]
then
echo "yes,$a > $b"
elif
[ $a -lt $b ]
then
echo "yes,$a < $b"
else
echo "yes,$a = $b"
执行结果:
[root@dbserver ~]# sh if_01_01.sh 2 3 4
Usage:sh if_01_01.sh num1 num2

现在同时判断输入参数是否为两个以及参数的正确性.
[root@dbserver ~]# cat if_01_01.sh
#!/bin/bash
a=$1
b=$2
if [ $# -ne 2 ]
then
echo "Usage:sh $0 num1 num2"
exit
fi
[ -n "echo $1|sed 's/[0-9]//g'" ] && echo "the first data must be number" && exit 1 -----说明:sed s/要替换的字符串/新的字符串/g
[ -n "echo $2|sed 's/[0-9]//g'" ] && echo "the second data must be number" && exit 1
if
[ $a -gt $b ]
then
echo "yes,$a > $b"
elif
[ $a -eq $b ]
then
echo "yes,$a = $b"
else
echo "yes,$a < $b"
fi
执行结果:
[root@dbserver ~]# sh if_01_01.sh 2 3k
the second data must be number
[root@dbserver ~]# sh if_01_01.sh 2k 3
the first data must be number
[root@dbserver ~]# sh if_01_01.sh 2k 3k
the first data must be number
[root@dbserver ~]# sh if_01_01.sh 2 36
yes,2 < 36

标签:shell,dbserver,root,number,sh,01,条件句,yes,双多
来源: https://blog.51cto.com/12991611/2656477