shell中的test测试命令

5 篇文章 0 订阅
1)判断表达式 

test 表达式1 –a 表达式2                  两个表达式都为真 

test 表达式1 –o 表达式2                 两个表达式有一个为真 

2)判断字符串 
–n s1字符串s1的长度非零,表达式为真
–z s1如果字符串s1的长度为零,表达式为真 
s1= s2    如果s1和s2相等,表达式为真 
s1 != s2如果s1不等于s2,则表达式为真


3)判断整数 

n1 -eq n2当n1等于n2时候,表达式值为真
n1 -ne n2当n1≠n2时候,表达式为真
n1 -gt n2当n1 > n2时候,表达式为真
n1 -lt n2当n1 < n2时候,表达式值为真
n1 -ge n2当n1 ≥ n2时候,表达式值为真
n1 -le n2当n1 ≤ n2时候,表达式为真


4)判断文件 

-b file当file存在,且为块设备文件的时候,表达式为真。
-c file当file存在,且为字符设备文件时候,表达式为真
-r/w/x file当file存在,且为可读/可写/可执行文件时候,表达式为真
-s file当file存在,且文件长度大于零,表达式为真
-d file当file存在,且为目录文件时候,表达式为真
-f file当file存在,且为普通文件时候,表达式为真
-e file当file存在,表达式为真


test  File1 –ef  File2                            两个文件具有同样的设备号和i结点号 

test  File1 –nt  File2                            文件1比文件2 新 

test  File1 –ot  File2                            文件1比文件2 旧 

test –g File                                           文件存在并且是设置了组ID 

test –G File                                           文件存在并且属于有效组ID 

test –h File                                           文件存在并且是一个符号链接(同-L) 

test –k File                                           文件存在并且设置了sticky位 

test –b File                                           文件存在并且是块设备文件 

test –L File                                           文件存在并且是一个符号链接(同-h) 

test –o File                                           文件存在并且属于有效用户ID 

test –p File                                           文件存在并且是一个命名管道 

test –r File                                            文件存在并且可读 

test –s File                                           文件存在并且是一个套接字 

test –t FD                                             文件描述符是在一个终端打开的 

test –u File                                           文件存在并且设置了它的set-user-id位 

test –w File                                          文件存在并且可写 

test –x File                                           文件存在并且可执行 


以下是一个简单的test命令测试例子,用于高速用户该文件属于什么类型文件

#!/bin/bash

# shell测试命令: test 表达式
# 可以使用 [ 表达式 ]代替test命令,但是要注意在"["之后和"]"之前保留空格。


# 测试文件属性:
# -b file      如果为块文件,则表达式为真
# -c file      如果为字符设备,则表达式为真
# -r/w/x file  如果文件存在且为 可读/可写/执行 文件时候,表达式为真
# -s file      如果文件存在且为普通文件,并且长度大于零
# -d file      如果为目录,则表达式值为真
# -f file      如果文件为普通文件,则表达式为真
# -e file      如果文件存在,表达式为真


echo please input the filename:
read filename

if [ -e $filename ]; then
	echo $filename exist
	if [ -b $filename ]; then
		echo This is block file
	elif [ -c $filename ]; then
 	    echo This is character file
	elif [ -f $filename ]; then
   	    echo This is a normal file
	elif [ -d $filename ]; then
   	    echo This is a dirctory file
	fi
else
	echo $filename not exist
fi


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值