shell中的数字对比问题,如果想对数字进行对比,我现在只知道两个方法,一个是((这里写表达式)),另一个是[ 这里写表达式 ],在(())与[]写表达式是有很大区别的。
1、在(())中写表达式可以直接写 == ,>,>=,<,<=
2、在[]中的表达式需要写么写 -eq(对应==),-gt(对应>),-ge(对应>=),-lt(对应<),-le(对应<=)

while (()) 示例:

#!/bin/bash
# Program
# This is a test file

#这里定义变量时,中间不能有空格
num=10

#while循环,当num >= 5时,一直循环下去
while(($num >= 5));do
#输出当前num的值
echo $num
#把num的值减一,这里也可以替换为((num--))达到相同的效果
let num--

#本次循环结束
done;

结果如下:

这里写图片描述

until的循环跟while的循环理念可以相反的,while是条件成立就会执行,而until是条件成立就终止循环

#!/bin/bash
# Program
# This is a test file

#这里定义变量时,中间不能有空格
num=10

#util循环,当num <= 5时(这里注意,【】中的任意一个变量都必须以空格分开,否则会报错),终止循环,否则一直循环下去
util [ $num -le 5 ];do
#输出当前num的值
echo $num
#把num的值减一,这里也可以替换为((num--))达到相同的效果
let num--

#本次循环结束
done;

执行结果如下

这里写图片描述

Logo

更多推荐