侧边栏壁纸
博主头像
WY博主等级

已枉少年

  • 累计撰写 22 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论
标签搜索

Linux Shell脚本(2)

WY
WY
2022-05-15 / 0 评论 / 0 点赞 / 152 阅读 / 1,469 字
温馨提示:
本文最后更新于 2022-05-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

image
按照测试对象来划分,条件测试语句可以分为4种:
1 文件测试语句;
2 逻辑测试语句;
3 整数值比较语句;
4 字符串比较语句。

               文件测试所用的参数

操作符 作用
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
例:
[root@linuxprobe ~]# [ -d /etc/fstab ]
[root@linuxprobe ~]# echo $?
1
[root@linuxprobe ~]# [ -f /etc/fstab ]
[root@linuxprobe ~]# echo $?
0

&&是逻辑“与”,只有当前面的语句执行成功的时候才会执行后面的语句。
||是逻辑“或”,只有当前面的语句执行失败的时候才会执行后面的语句。
!是逻辑“非”,代表对逻辑测试结果取反值;之前若为正确则变成错误,若为错误则变成正确。
例:
[root@linuxprobe ~]# [ -e /dev/cdrom ] && echo “Exist”
Exist
[root@linuxprobe ~]# echo $USER
root
[root@linuxprobe ~]# [ $USER = root ] || echo “user”

[root@linuxprobe ~]# su - linuxprobe

[linuxprobe@linuxprobe ~]$ [ $USER = root ] || echo “user”
user

[root@linuxprobe ~]# [ ! $USER = root ] || echo “administrator”
administrator

[root@linuxprobe ~]# [ ! $USER = root ] && echo “user” || echo “root”
root

可用的整数比较运算符
操作符 作用
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否等于或小于
-ge 是否大于或等于
例:
[root@linuxprobe ~]# [ 10 -gt 10 ]
[root@linuxprobe ~]# echo $?
1
[root@linuxprobe ~]# [ 10 -eq 10 ]
[root@linuxprobe ~]# echo $?
0

[root@linuxprobe ~]# free -m
total used free shared buff/cache available
Mem: 1966 1374 128 16 463 397
Swap: 2047 66 1981
[root@linuxprobe ~]# free -m | grep Mem:
Mem: 1966 1374 128 16 463 397
[root@linuxprobe ~]# free -m | grep Mem: | awk ‘{print $4}’
128
[root@linuxprobe ~]# FreeMem=free -m | grep Mem: | awk '{print $4}'
[root@linuxprobe ~]# echo $FreeMem
128
[root@linuxprobe ~]# [ $FreeMem -lt 1024 ] && echo “Insufficient Memory”
Insufficient Memory

常见的字符串比较运算符
操作符 作用
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空
例:
[root@linuxprobe ~]# echo $LANG
en_US.UTF-8
[root@linuxprobe ~]# [ ! $LANG = “en.US” ] && echo “Not en.US
Not en.US

0

评论区