Linux-shell之判断大小
实战1: 输入2个整数,判断大小
三种方式实现:
1 定义变量 2 脚本传参 3 read读入
第一步,给用户提示,让其输入整数
第二步,判断第一个值和第二个值不为空
第三步,判断两个数为整数
第四步,第一个值与第二个值对比
[root@mysql-5 scripts]# cat test21.sh #!/bin/bash cat <<EOF 1-10... zhengshu EOF read -p "panduan daxiao:" a b [ ${#a} -eq 0 ]&&{ echo "diyigecanshu" exit 1 } [ ${#b} -eq 0 ]&&{ echo "diergecanshu" exit 1 } expr $a + 1 &>/dev/null RE_A=$? expr $b + 1 &>/dev/null RE_B=$? if [ $RE_A -ne 0 -o $RE_B -ne 0 ] then echo "one of you input is not int" exit 1 fi if [ $a -eq $b ]; then echo "$a = $b" elif [ $a -gt $b ] then echo "$a > $b" else echo "$a < $b" fi [root@mysql-5 scripts]# sh test2 test20.sh test21.sh test2.sh [root@mysql-5 scripts]# sh test21.sh 1-10... zhengshu panduan daxiao:e e one of you input is not int [root@mysql-5 scripts]# sh test21.sh 1-10... zhengshu panduan daxiao:2 34 2 < 34 [root@mysql-5 scripts]# sh test21.sh 1-10... zhengshu panduan daxiao:3 3 3 = 3 [root@mysql-5 scripts]#
脚本传参方式实现
我这里是对上面进行了改变。进到vim里面
%s#$a#$1#g %s#$b#$2#g 在删除几行,就实现了脚本传参的方式
[root@mysql-5 scripts]# cat test22.sh #!/bin/bash [ ${#1} -eq 0 ]&&{ echo "diyigecanshu" exit 1 } [ ${#2} -eq 0 ]&&{ echo "diergecanshu" exit 1 } expr $1 + 1 &>/dev/null RE_A=$? expr $2 + 1 &>/dev/null RE_B=$? if [ $RE_A -ne 0 -o $RE_B -ne 0 ] then echo "one of you input is not int" exit 1 fi if [ $1 -eq $2 ]; then echo "$1 = $2" elif [ $1 -gt $2 ] then echo "$1 > $2" else echo "$1 < $2" fi [root@mysql-5 scripts]# sh test22.sh 3 d one of you input is not int [root@mysql-5 scripts]# sh test22.sh 3 4 3 < 4 [root@mysql-5 scripts]# sh test22.sh 3 3 3 = 3 [root@mysql-5 scripts]#
定义变量的方式
这里我用以下命令替换了以下原有的变量,进行测试
[root@mysql-5 scripts]# sh test23.sh 3 < 4 [root@mysql-5 scripts]# sed -i "s#3#4#g" test23.sh [root@mysql-5 scripts]# sh test23.sh 4 = 4 [root@mysql-5 scripts]# sed -i "s#4#dd#g" test23.sh [root@mysql-5 scripts]# sh test23.sh one of you input is not int [root@mysql-5 scripts]# cat test23.sh #!/bin/bash a=dd b=dd [ ${#a} -eq 0 ]&&{ echo "diyigecanshu" exit 1 } [ ${#b} -eq 0 ]&&{ echo "diergecanshu" exit 1 } expr $a + 1 &>/dev/null RE_A=$? expr $b + 1 &>/dev/null RE_B=$? if [ $RE_A -ne 0 -o $RE_B -ne 0 ] then echo "one of you input is not int" exit 1 fi if [ $a -eq $b ]; then echo "$a = $b" elif [ $a -gt $b ] then echo "$a > $b" else echo "$a < $b" fi [root@mysql-5 scripts]#
本文出自 “晴空” 博客,谢绝转载!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。