shell补-运算-条件测试
shell补-运算-条件测试
条件测试语法 | 说明 |
---|---|
语法1:test <测试表达式> | 这是利用test命令进行条件测试表达式的方法。test命令和"<测试表达式>"之间至少有一个空格。 |
语法2:[ <测试表达式> ] | 这是通过[]单中括号进行条件测试表达式的方法,和test命令的用法相同,这是推荐的方法,[]的边界和内容之间至少有一个空格 |
语法3:[[ <测试表达式>]] | 这是通过[[]]双中括号进行条件测试表达式的方法,是比test和[]更新的语法格式。 [[]]的边界和内容之间至少有一个空格 |
语法4:((<测试表达式>)) | 这是通过(())双小括号进行条件测试表达式的方法,一般用于if语句理。(())双小括号两端不需要有空格 |
参考man bash 搜索CONDITIONAL EXPRESSIONS 或者man test
- 与文件相关的判断/条件
f1 -nt f2 file1 newer than file2
f1 -ot f2 file1 older than file2
常用格式
#满足条件,执行某个命令
[ 条件 ] && 命令
#满足条件,执行多个命令
[ 条件 ] && {
cmd1
cmd2
}
#不满足条件,执行某个命令
[ 条件 ]|| 命令
#不满足条件,执行多个命令
[ 条件 ]|| {
cmd1
cmd2
}
# cmd1 && cmd 2 前一个命令执行成功,再执行后面命令
# cmd3 || cmd 4 前一个命令执行失败,再执行后面的命令
#################################################################
[root@localhost sub_str]# cat calculationtestawk2.sh
#!/bin/bash
a=${1}
b=${2}
[ $# -ne "2" ] && { ####注意不要写成这样 { echo "请录入2个参数" } ;花括号换行要
exit
}
echo "请录入2个参数"
exit
}
expr $a + $b >/dev/null || {
echo "请录入数字型参数!"
exit
}
echo "${a} +${b}的值为" `awk -v n=$a -v c=$b 'BEGIN {print n+c}'`
echo "${a} -${b}的值为" `awk -v n=$a -vc=$b 'BEGIN {print n-c}'`
echo "${a} *${b}的值为" `awk -v n=$a -vc=$b 'BEGIN {print n*c}'`
echo "${a} /${b}的值为" `awk -v n=$a -vc=$b 'BEGIN {print n/c}'`
[root@localhost sub_str]# sh calculationtestawk2.sh 1 2 3
请录入2个参数
[root@localhost sub_str]# sh calculationtestawk2.sh 1 a
expr: 非整数参数 #####如果不想看到错误信息,可后台入 expr $a + $b & >/dev/null
请录入数字型参数!
[root@localhost sub_str]# sh calculationtestawk2.sh 1 4
1 +4的值为 5
1 -4的值为 -3
1 *4的值为 4
1 /4的值为 0.25
[root@localhost sub_str]#
字符串比较
温馨提示,最好加上双引号
-z zero 如果变量/字符串是空则成立
-n not zero 如果变量/字符串不是空则成立
= 判断两个字符串/变量内容是否一致,相等则成立 true 注意加上双引号
!= 判断两个字符串/变量内容是否一致,步相等则成立 true注意加上双引号
分类:
shell实战2查漏补缺
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!