红联Linux门户
Linux帮助

LINUX比较参数(test)

发布时间:2015-11-19 15:50:23来源:linux网站作者:不再疯要傻

在这里,首先感谢鸟哥,因为有了他,linux越来越简单。

在写shell脚本的时候,经常使用if语句进行判断,下面我给大家总结了一些关于判断的参数:


一、文件类型判断:(除特殊说明外,以下所有例子结果均为redhat6.4默认设置,并且结果均为true)

-e 判断文件(目录)是否存在

如:if [ -e /etc/fstab ]; then
echo "yes"
else
echo "no"
fi

大概意思是判断/etc/fstab这个文件是否存在,如果存在返回yes 如果不存在返回no

-f 判断文件是否存在(非目录)

如:if [ -f /etc/fstab ]; then
echo "yes"
else
echo "no"
fi

大概意思是判断/etc/fstab这个文件是否存在,如果存在返回yes 如果不存在或者是目录则返回no

-d 判断目录是否存在(非文件)

如:if [ -d /etc ]; then
echo "yes"
else
echo "no"
fi

大概意思是判断/etc这个目录是否存在,如果存在则返回yes,如果不存或者不是目录则返回no

-b 判断是否是块设备

如:if [ -b /dev/sda]; then
echo "yes"
else
echo "no"
fi

大概意思是判断/dev/sda是否存在且是块设备,如果是则返回yes,如果不是则返回no(注:块设备的基本特征是每个块都能独立于其它块而读写,如:光盘、磁盘、软盘等)

-c  判断是否为字符设备

如:if [ -c /dev/tty ]; then

echo "yes"
else
echo "no"
fi

大概意思是判断/dev/tty是否存在且是字符设备,如果是则返回yes,如果不是则返回no(注:字符设备是指在I/O传输过程中以字符为单位进行传输的设备,如:键盘,打印机等)

-S 判断是否是一个socket文件

-p 判断是否是FIFO文件(先进先出)


二、文件权限判断

-r  判断是否可读

-w 判断是否可写

-x 判断是否可执行

#!/bin/bash
if [ -x /bin/bash ]; then
echo "yes"
else
echo "no"
fi

检查/bin/bash文件用户是否含有执行权限,如果有则返回yes,否则为no(这个权限与运行脚本的用户权限有关)


Shell Test命令参数解析:http://www.linuxdiyf.com/linux/4803.html

Unix中test命令的用法:http://www.linuxdiyf.com/linux/4515.html