shell脚本——条件测试test、expr

本文详细介绍了在Shell脚本中如何使用test命令进行文件状态、字符串和数值的测试,以及expr命令的用法。通过示例展示了测试文件的可读性、可执行性,逻辑操作符的运用,字符串比较以及数值比较的方法。同时,讲解了expr命令在处理整数值和字符串时的应用。
摘要由CSDN通过智能技术生成

shell脚本第一行总是以 #/bin/bash开始,这段脚本通知shell使用系统上的Bourne shell解释器。
任何脚本都可能有注释,加注释需要此行的第一个字符为 #,解释器对此行不予解释。

• 对文件、字符串和数字使用test命令。
• 对数字和字符串使用expr命令。
expr命令测试和执行数值输出。使用最后退出状态命令

1.test测试文件状态

test一般有两种格式,即:
test condition 文件名

[ condition 文件名 ]
使用方括号时,要注意在条件两边加上空格。
测试文件状态的条件表达式很多,但是最常用的可在下表中查到:

参数 含义 参数 含义
-d 目录 -s 文件长度大于0,非空
-f 正规文件 -w 可写
-L 链接文件 -u 文件有suid位设置
-r 可读 -x 可执行

首先我们创建一个空文件test1

[root@localhost test]# touch test1
[root@localhost test]# ll
总用量 0
-rw-r--r--. 1 root root 0 919 14:35 test1
[root@localhost test]# 

我们现在测试下该文件的状态:
是否可读
第一种方式:

[root@localhost test]# test -r test1 
[root@localhost test]# echo $?
0

第二种方式:

[root@localhost test]# [ -r test1 ]
[root@localhost test]# echo $?
0

两种状态均返回0!

是否可执行?

[root@localhost test]# [ -x test1 ]
[root@localhost test]# echo $?
1

给文件赋予可写的权限,并测试文件是否可执行?

[root@localhost test]# chmod u+x test1 
[root@localhost test]# test -x test1
[root@localhost test]# echo $?
0
2.测试时使用逻辑操作符

测试文件状态是否为 O K,但是有时要比较两个文件状态。 s h e l l提供三种逻辑操作完成此
功能。

逻辑操作符 逻辑操作符具体的含义
-a 逻辑与,操作符两边均为真,结果为真,否则为假。
-o 逻辑或,操作符两边一边为真,结果为真,否则为假。
! 逻辑否,条件为假,结果为真。

下面比较两个文件:

[root@localhost test]# ll							#列出两个文件详细信息
总用量 0
-rwxr--r--
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值