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
更多相关文章
- MVC控制器类的访问、参数解析、api接口数据获取并渲染
- python关于range函数总结
- 2021-03-10:一个数组上共有 N 个点,序号为0的点是起点位置,序号为N-
- 笔记 | Python之函数式编程
- SQL存储过程的详细用法,不信你看不懂
- TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数
- 2021-03-08:在一个数组中,任何一个前面的数a,和任何一个后面的数b,如
- C++入门第一课(命名空间;输入输出;缺省参数;函数重载)
- 控制器访问与参数解析类以及api天气接口实现输入城市查询天气