shell条件测试2

脚本中经常进行条件测试,用的最多的,都是中括号[ ]
test和[ ]的昨天是一样
注意的点:中括号,前后的空格必须。
[ -n "$filename" ]

注意,在条件测试中使用变量,必须添加双引号
双中括号 [[条件表达式]]

[root@localhost jay]# su - jay
上一次登录:五 5月 19 16:40:21 CST 2023pts/0 上
[jay@localhost ~]$ ls
zz.txt
[jay@localhost ~]$ touch 1.txt
[jay@localhost ~]$ [ -f "hello.txt" ] && echo "已存在" || touch "hello.txt" && echo "创建成功"
创建成功
[jay@localhost ~]$ ls
1.txt  hello.txt  zz.txt
[jay@localhost ~]$ ll
总用量 0
-rw-rw-r--. 1 jay jay 0 5月  19 16:45 1.txt
-rw-rw-r--. 1 jay jay 0 5月  19 16:46 hello.txt
-rw-rw-r--. 1 jay jay 0 5月  19 16:44 zz.txt
[jay@localhost ~]$ chmod 0 hello.txt 
[jay@localhost ~]$ ls
1.txt  hello.txt  zz.txt
[jay@localhost ~]$ cat hello.txt 
cat: hello.txt: 权限不够
[jay@localhost ~]$ [[ -r "hello.txt" ]] && cat hello.txt || echo "没有权限看不了"
没有权限看不了

变量测试
把字符串信息,写入到变量中
对变量测试,必须加双引号


字符串比较测试

比较两个字符串的值,是否相等,不等这样的情况


注意
对于字符串变量的比较
一定要记住给变量添加双引号
使用等于号的值判断,左右两边也必须有空格

在中括号中,以及test中数值测试的用法
在中括号中,使用数学比较符合,请添加转义符号


在test和[]语法中,支持-eq此类写法,以及支持 > < = !=
在双中括号中,就不需要转义符号了

在工作中,用的最多的就是单中括号,双括号属于特殊场景的扩展语法
并且 双中括号也是 支持 -eq -lt < > =

posted on 2023-05-19 14:50  sprr  阅读(15)  评论(0编辑  收藏  举报