Shell脚本test和[]和[[ ]]和(())语句应用

记录:437

场景:Shell脚本test、[]、[[]]、(())语句应用。

版本:CentOS Linux release 7.9.2009。

1.test和[]和[[]]和(())语句

test,test命令用于检测某个条件是否成立。可以进行数值、字符和文件等方面的测试。

[],test命令简写为[]。支持关系运算符等。

[[ ]],支持逻辑运算符。

格式:test expression

格式:[ expression ]

格式:[[ expression01 || expression02 ]]

格式:(( expression01 && expression02 ))

注意:[]和expression之间有空格,这两个空格是必须的,否则执行时会导致语法错误。

2.使用test命令

2.1脚本

脚本名称:b2023052901.sh

脚本内容:

#!/bin/bash

echo "请分别输入GDP,人口数,以空格分割:"
read gdp population

#使用test表达式
if test ${gdp} -gt 30000 && test ${population} -lt 2000 ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是一类城市."
elif test ${gdp} -gt 20000 && test ${population} -lt 1500 ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是二类城市."
elif test ${gdp} -gt 10000 && test ${population} -lt 1000 ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是三类城市."
elif test ${gdp} -gt 5000 && test ${population} -lt 500 ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是四类城市."
else
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万."
fi

2.2执行与输出

执行命令:bash b2023052901.sh

执行结果:

[root@hadoop211 tutorial]# bash b2023052901.sh 
请分别输入GDP,人口数,以空格分割:
30001 1999
城市GDP: 30001 亿, 人口: 1999 万,这是一类城市.

3.使用[]

3.1脚本

脚本名称:b2023052902.sh

脚本内容:

#!/bin/bash

echo "请分别输入GDP,人口数,以空格分割:"
read gdp population

#使用[]表达式
if [ ${gdp} -gt 30000 ] && [ ${population} -lt 2000 ] ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是一类城市."
elif [ ${gdp} -gt 20000 ] && [ ${population} -lt 1500 ] ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是二类城市."
elif [ ${gdp} -gt 10000 ] && [ ${population} -lt 1000 ] ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是三类城市."
elif [ ${gdp} -gt 5000 ] && [ ${population} -lt 500 ] ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是四类城市."
else
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万."
fi

3.2执行与输出

执行命令:bash b2023052902.sh

执行结果:

[root@hadoop211 tutorial]# bash b2023052902.sh 
请分别输入GDP,人口数,以空格分割:
20001 1499
城市GDP: 20001 亿, 人口: 1499 万,这是二类城市.

4.使用[[]]

4.1脚本

脚本名称:b2023052903.sh

脚本内容:

#!/bin/bash

echo "请分别输入GDP,人口数,以空格分割:"
read gdp population

#使用[[]]表达式
if [[ ${gdp} -gt 30000 && ${population} -lt 2000 ]] ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是一类城市."
elif [[ ${gdp} -gt 20000 && ${population} -lt 1500 ]] ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是二类城市."
elif [[ ${gdp} -gt 10000 && ${population} -lt 1000 ]] ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是三类城市."
elif [[ ${gdp} -gt 5000 && ${population} -lt 500 ]] ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是四类城市."
else
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万."
fi

4.2执行与输出

执行命令:bash b2023052903.sh

执行结果:

[root@hadoop211 tutorial]# bash b2023052903.sh 
请分别输入GDP,人口数,以空格分割:
10001 999
城市GDP: 10001 亿, 人口: 999 万,这是三类城市.

5.使用(())

5.1脚本

脚本名称:b2023052904.sh

脚本内容:

#!/bin/bash

echo "请分别输入GDP,人口数,以空格分割:"
read gdp population
#使用(())表达式
if (( ${gdp} > 30000 && ${population} < 2000)) ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是一类城市."
elif (( ${gdp} > 20000 && ${population} < 1500)) ;then 
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是二类城市."
elif (( ${gdp} > 10000 && ${population} < 1000)) ;then 
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是三类城市."
elif (( ${gdp} > 5000 && ${population} < 500)) ;then 
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是四类城市."
else
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万."
fi

5.2执行与输出

执行命令:bash b2023052904.sh

执行结果:

[root@hadoop211 tutorial]# bash b2023052904.sh 
请分别输入GDP,人口数,以空格分割:
5001 499
城市GDP: 5001 亿, 人口: 499 万,这是四类城市.

6.test和[]和[[]]和(())语句联合使用

6.1脚本

脚本名称:b2023052905.sh

脚本内容:

#!/bin/bash

echo "请分别输入GDP,人口数,以空格分割:"
read gdp population
#test和[]和[[]]和(())语句联合使用
if test ${gdp} -gt 30000 && test ${population} -lt 2000 ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是一类城市."
elif [ ${gdp} -gt 20000 ] && [ ${population} -lt 1500 ] ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是二类城市."
elif [[ ${gdp} -gt 10000 && ${population} -lt 1000 ]] ;then
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是三类城市."
elif (( ${gdp} > 5000 && ${population} < 500)) ;then 
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万,这是四类城市."
else
  echo "城市GDP: ${gdp} 亿, 人口: ${population} 万."
fi

6.2执行与输出

执行命令:bash b2023052905.sh

执行结果:

[root@hadoop211 tutorial]# bash b2023052905.sh 
请分别输入GDP,人口数,以空格分割:
30001 1999
城市GDP: 30001 亿, 人口: 1999 万,这是一类城市.
[root@hadoop211 tutorial]# bash b2023052905.sh 
请分别输入GDP,人口数,以空格分割:
20001 1499
城市GDP: 20001 亿, 人口: 1499 万,这是二类城市.
[root@hadoop211 tutorial]# bash b2023052905.sh 
请分别输入GDP,人口数,以空格分割:
10001 999
城市GDP: 10001 亿, 人口: 999 万,这是三类城市.
[root@hadoop211 tutorial]# bash b2023052905.sh 
请分别输入GDP,人口数,以空格分割:
5001 499
城市GDP: 5001 亿, 人口: 499 万,这是四类城市.
[root@hadoop211 tutorial]# bash b2023052905.sh 
请分别输入GDP,人口数,以空格分割:
30001 2001
城市GDP: 30001 亿, 人口: 2001 万.

以上,感谢。

2023年5月29日

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值