当需要检测系统上面某些文件或者是相关的属性时,利用test命令是最好不过的选择。举例来说,要检查/dmtsai是否存在时,使用
[root@Server01 scripts]# test -e /dmtsai && echo "exist" || echo "Not exist"
Not exist <==结果显示不存在
最终的结果显示是“exist”还是“Not exist”。-e是测试一个“文件或目录”存在与否,如果还想要测试一下该文件名是什么,可以用表4-1所示的选项进行判断。
test简单的例子:
输入一个文件名,然后做如下判断。
这个文件是否存在,若不存在,则给出“Filename does not exist”的信息,并中断程序。
若这个文件存在,则判断其是文件还是目录,结果输出“Filename is regular file”或“Filename is directory”。
判断一下,执行者的身份对这个文件或目录所拥有的权限,并输出权限数据。
[root@Server01 scripts]# vim sh05.sh
!/bin/bash
Program:
User input a filename, program will check the flowing:
1.) exist? 2.) file/directory? 3.) file permissions
History:
2021/08/25 Bobby 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\n"
read -p "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="regulare file"
test -d $filename && filetype="directory"
test -r $filename && perm="readable"
test -w $filename && perm="$perm writable"
test -x $filename && perm="$perm executable"
开始输出信息
echo "The filename: $filename is a $filetype"
echo "And the permissions are : $perm“
运行: [root@Server01 scripts]# sh sh05.sh