我是靠谱客的博主 专一荷花,最近开发中收集的这篇文章主要介绍linux命令test功能,linux利用test命令的测试功能,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

当要检测系统上的某些文件或者相关属性时,利用test这个命令来工作:

测试的标志

代表意义

-e

该文件名是否存在

-f

该文件名是否存在且为文件

-d

该文件名是否存在且为目录

-b

该文件名是否存在且为一个block device设备

-c

该文件名是否存在且为一个character device设备

-S

该文件名是否存在且为一个Socket文件

-p

该文件名是否存在且为一个FIFO文件

-L

该文件名是否存在且为一个连接文件

关于文件的权限检测

-r

检测该文件名是否存在且具有“可读”权限

-w

检测该文件名是否存在且具有“可写”权限

-x

检测该文件名是否存在且具有“可执行”权限

-u

检测该文件名是否具有“SUID”的属性

-g

检测该文件名是否存在且具有“SGID”的属性

-k

检测该文件名是否存在且具有“Sticky bit”的属性

-s

检测该文件名是否存在且为“非空白文件”

两个文件之间的比较,如:test file1 –nt file2

-nt

判断file1是否比file2新

-ot

判断file1是否比file2旧

-ef

判断file1与file2是否为同一文件,可用在判断hard link的判定上。主要意义在于判断两个文件是否均指向同一个iNode

关于两个整数之间的判定,如:test n1 –eq n2

-eq

两数值相等

-ne

两数值不相等

-gt

n1大于n2

-lt

n1小于n2

-ge

n1大于等于n2

-le

n1小于等于n2

判定字符串的数据

test –z string

判定字符串是否为0,若string为空字符串,则true

test –n string

判定字符串是否非为0,若string为空字符串,则为false,注:-n也可以省略

test str1=str2

判定str1是否等于str2,若相等,则会回传true

test str1 != str2

判定str1是否不等于str2,若相等,则回传false

多重条件判定,例如:test –r filename –a –x filename

-a

两个条件同时成立!,例如test –r file –a –x,则file同时具有r与x权限时,才回传true

-o

任何一个条件成立,例如,test –r file –o –x file,则file具有r或x权限时,就可回传true

!

反向状态,如,test ! –x file,当file不具有x时,回传true 现在就利用test来做一个简单的例子

~# vim sh05.sh

#!/bin/bash

#Program

#User input a filename, program will check the flowing;

#1)exist? 2) file/directory? 3) file permissions

#History

#2015/2/3 tian First release

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

echo -e "Please input a filename I will check the filename's type and

permission.n "

read -p "Please input a filename: " filename

test -z $filename && echo "You Must input a filename." && exit 0

test ! -e $filename && echo "The filename '$filename' Do Not exist" && exit 0

test -f $filename && filetype="regular file"

test -d $filename && filetype="directory"

test -r $filename && perm="readable"

test -w $filename && perm="$perm writeable"

test -x $filename && perm="$perm excutable"

echo "The filename: $filename is a $filetype"

echo "And the permissions are : $perm"

~# source sh05.sh

Please input a filename I will check the filename's type andpermission.

Please input a filename: tianfile

The filename: tianfile is a regular file

And the permissions are : readable writeable

最后

以上就是专一荷花为你收集整理的linux命令test功能,linux利用test命令的测试功能的全部内容,希望文章能够帮你解决linux命令test功能,linux利用test命令的测试功能所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部