有趣的脚本(比较2个整数大小,禁止使用if判断)

实现以定义变量,脚本传参以及read读入的方式比较2个整数

read方式:

#!/bin/bash
read -p "pls input two num:" a b
#测试字符串是否为0
[ -z "$a" ] || [ -z "$b" ] &&{     #-z:检测字符串长度是否为0,为0返回 true。
echo "pls input two num again:"
exit 1
}
expr $a + 0 &>/dev/null
RETVAL1=$?
expr $b + 0 &>/dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0||{ #-a:与运算,两个表达式都为 true 才返回 true。
echo "Pls input two num again: "
exit 2
}
[ $a -lt $b ] && {
echo "$a < $b"
exit 0
}
[ $a -eq $b ] && {
echo "$a = $b"
exit 0
}
[ $a -gt $b ] && {
echo "$a > $b"
exit 0
}

验证奇迹的时刻:
[[email protected] ~]# sh test1.sh 
Pls input two num:1 2
1 < 2
[[email protected] ~]# sh test1.sh 
Pls input two num:1 1    
1 = 1
[[email protected] ~]# sh test1.sh 
Pls input two num:3 1
3 > 1

脚本传参:

#!/bin/bash
a=$1
b=$2
[ -z "$a" ] || [ -z "$b" ] && {
  echo "pls input two num again:"
  exit 1
}
expr $a + 0 &>/dev/null
RETVAL1=$?
expr $b + 0 &>/dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 || {
  echo "pls input two num again:"
  exit 2
}
[ $a -lt $b ] && {
echo "$a < $b"
exit 0
}
[ $a -eq $b ] && {
echo "$a = $b"
exit 0
}
[ $a -gt $b ] && {
echo "$a > $b"
exit 0
}

验证奇迹的时刻:
[[email protected] ~]# sh test1.sh 2 3
2 < 3
[[email protected] ~]# sh test1.sh 1 1
1 = 1

定义变量:

#!/bin/bash
a=1
b=1
[ -z "$a" ] || [ -z "$b" ] && {
  echo "pls input two num again:"
  exit 1
}
expr $a + 0 &>/dev/null
RETVAL1=$?
expr $b + 0 &>/dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 || {
  echo "pls input two num again:"
  exit 2
}
[ $a -lt $b ] && {
echo "$a < $b"
exit 0
}
[ $a -eq $b ] && {
echo "$a = $b"
exit 0
}
[ $a -gt $b ] && {
echo "$a > $b"
exit 0
}

验证奇迹的时刻:
[[email protected] ~]# sh test1.sh 
1 = 1
时间: 2024-11-05 12:20:17

有趣的脚本(比较2个整数大小,禁止使用if判断)的相关文章

shell脚本-比较两个整数大小

开发shell脚本分别实现以脚本传参以及read读入的方式比较2个整数大小.用条件表达式(禁止if)进行判断并以屏幕输出的方式提醒用户比较结果.注意:一共是开发2个脚本.当用脚本传参以及read读入的方式需要对变量是否为数字.并且传参个数不对给予提示. read读入方式 #!/bin/bash read -p "Pls input two num:" a b  #no1 [ -z "$a" ] || [ -z "$b" ] && 

怎样让硬盘分区显示整数大小

怎样让硬盘分区显示整数大小 经常在使用电脑的会发现自己的 C ,D,E, F盘分的都不是整数,细心的感觉不是很好,那么如何在下次装机的时候让你的所有分区都是你想要的整数分区呢,下面我介绍一下我的两种方法. 工具/原料 计算器 ,或硬盘整数分区计算器 方法/步骤1 先为大家详细分析硬盘分区容量显示原理: 不论是机械硬盘还是固态SSD硬盘,厂商为了换算方便,是按照千进制来计算硬盘容量的,例如一块1TB(1000G)的硬盘实际容量是1,000,000,000,000Bit=976,562,500KB=

20.5 Shell脚本中的逻辑判断;20.6 文件目录属性判断;20.7 if特殊用法;20.8 20.9 cace判断(上下)

扩展: select用法 http://www.apelearn.com/bbs/thread-7950-1-1.html 20.5 Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 1. 创建if1.sh测试脚本: [[email protected] ~]# vi if1.sh a=5,如果a大于3,满足这个条件,显示ok 添加内容: #!/bin/bash a=5 if [ $a -gt 3 ] then echo ok fi 2. 执行if1.sh脚本: [[e

1-4-05:整数大小比较

描述 输入两个整数,比较它们的大小. 输入一行,包含两个整数x和y,中间用单个空格隔开.0 <= x < 2^32, -2^31 <= y < 2^31.输出一个字符.若x > y,输出 > :若x = y,输出 = :若x < y,输出 < :样例输入 1000 100 样例输出 > 1 #include<stdio.h> 2 int main() 3 { 4 long int x,y; 5 scanf("%ld%ld"

shell脚本编程学习笔记-整数二次元比较操作符

1.1 下表为常用二次元比较操作符 我们也可以通过man test查看 提示 (1) "<"符号是小于的意思,if[[ "$a"<"$b" ]], if[[ "$a"\<"$b" ]].在单括号中需要转义,因为在shell也用<和>做重定向. (2) ">"符号是大于的意思,if[[ "$a"> "$b"

一个比较有趣的脚本

宿舍火星wifi经常掉,然后要重启,于是用Python写了一个脚本,用来远程控制火星wifi的重启 思路: 01.使用socket通讯 02.在wifi主机(开wifi的电脑)上运行客户端,控制机运行服务端 03.当想要重启wifi时候,通过控制机向wifi主机发送字符'1' 04.wifi主机收到字符后,当判断为'1'时,Python调用cmd杀掉火星wifi进程,然后等一会后再启动进程 05.完成重启后向控制机发送一条消息显示重启成功 控制机脚本: import socket import

代码审计-弱类型整数大小比较绕过

$temp = $_GET['password']; is_numeric($temp)?die("no numeric"):NULL; if($temp>1336){ echo $flag; is_numeric 同样可以用数组绕过.%00截断.添加其他字符 http://123.206.87.240:9009/22.php?password[]=1 http://123.206.87.240:9009/22.php?password=9999a http://123.206.

CPU的大小端及如果判断

不同体系结构的CPU,数据在内存中存放的排列顺序是不一样的. 存储器中对数据的存储是以字节(Byte)为基本单位的,因此,字(Word)和半字(Half-Word)在存储器中就有两种次序,分别称为:大端模式(Big Endian)和小端模式(Little Endian). 大端存储模式是指字或半字的最高字节(Most Significant Bit,MSB)存放在内存的最低位字节地址上,而字数据的低字节则存放在高地址中.打个比方,有一个字为0×12345678,这个字由4个字节组成, 从高位到低

微信字体大小禁止调整

1 (function() { 2 if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") { 3 handleFontSize(); 4 } else { 5 if (document.addEventListener) { 6 document.addEventListener("WeixinJSBridgeReady&qu