测试操作符
在编写 shell 脚本时,测试操作符对于检查错误和检查文件状态很重要 。下面只是可以在 ksh 和其他标准 UNIX shell 中使用的一部分测试操作符:
-d
-e
-f
-n : 不是 NULL
-r
-s
-w
-x
-z : 是 null
-L
请记住,在 Unix 目录中,设备、符号链接和其他对象都是文件,所以上面的测试操作符适用于所有类型的文件 。
每个人都有自己的 shell 脚本编程风格 。无论在测试语句中使用 [[ ]] 还是 [ ],上面的测试操作符的作用是相同的 。本文使用 [[ ]] 。清单 11 演示如何使用上面列出的几个测试操作符 。
清单 11. 使用测试操作符
【对话 UNIX: !$#@*%】#!/usr/bin/ksh
while true
do
echo "nEnter file to check: c"
read _FNAME
if [[ ! -e "${_FNAME}" ]]
then
echo "Unable to find file '${_FNAME}'"
continue
fi
if [[ -f "${_FNAME}" ]]
then
echo "${_FNAME} is a file."
elif [[ -d "${_FNAME}" ]]
then
echo "${_FNAME} is a Directory."
elif [[ -L "${_FNAME}" ]]
then
echo "${_FNAME} is a symbolic link."
else
echo "Unable to determine file type for '${_FNAME}'"
fi
[[ -r "${_FNAME}" ]] && echo "User ${USER} can read '${_FNAME}'"
[[ -w "${_FNAME}" ]] && echo "User ${USER} can write to '${_FNAME}'"
[[ -x "${_FNAME}" ]] && echo "User ${USER} can execute '${_FNAME}'"
if [[ -s "${_FNAME}" ]]
then
echo "${_FNAME} is NOT empty."
else
echo "${_FNAME} is empty."
fi
done
推荐阅读
- UNIX 共享内存应用中的问题及解决方法
- 用Syslog 记录UNIX和Windows日志的方法
- 本周五Unix系统将发生时间错误
- 秦国是现在的哪个省
- 如何在Unix结果中抽取想要的参数
- 同步 UNIX 文件
- /dev/tty文件在Unix操作系统中的妙用
- 有关UNIX启动的一些体会
- NetWare与UNIX的互联方法与实现
- iphone xs max可以无线充电吗
