进入homework_1文件夹,编写脚本check_file.sh
check_file.sh接受一个传入参数。格式为./check_file.sh file
判断传递参数,分别在标准输出中输出如下内容(不包括双引号):
(1)如果传入参数个数不足1,则输出一行:“arguments not valid”,然后退出,退出状态等于1。
(2)如果file文件不存在,则输出一行:“not exist”,然后退出,退出状态等于2。
(3)如果file文件存在,则输出分别进行如下5个判断,然后退出,退出状态等于0。
1)如果file为普通文件,则输出一行:“regular file”
2)如果file为目录(文件夹),则输出一行:“directory”
3)如果file具有可读权限,则输出一行:“readable”
4)如果file具有可写权限,则输出一行:“writable”
5)如果file具有可执行权限,则输出一行:“executable”
#! /bin/bash
#如果传入参数不是1
if [ $# -ne 1 ]
then
echo arguments not valid
exit 1
fi
#如果file文件不存在
if [ ! -e "$1" ]
then
echo not exist
exit 2
fi
#如果file为普通文件
if [ -f "$1" ]
then
echo regular file
fi
#如果file为目录(文件夹)
if [ -d "$1" ]
then
echo directory
fi
#如果file具有可读权限
if [ -r "$1" ]
then
echo readable
fi
#如果file具有可写权限
if [ -w "$1" ]
then
echo writable
fi
#如果file具有可执行权限
if [ -x "$1" ]
then
echo executable
fi
判断的一些条件
-a FILE 如果文件存在则为真。
-b FILE 如果文件是块状的,则为真。
-c FILE 如果文件是特殊字符,则为真。
-d FILE 如果文件是一个目录,则为真。
-e FILE 如果文件存在则为真。
-f FILE 如果文件存在并且是一个普通文件,则为真。
-g FILE 如果文件是set-group-id,则为真。
-h FILE 如果文件是一个符号链接,则为真。
-L FILE 如果文件是一个符号链接,则为真。
-k FILE 如果文件的 “粘性 “位被设置,则为真。
-p FILE 如果文件是一个命名的管道,则为真。
-r FILE 如果文件可以被你读取,则为真。
-s FILE 如果文件存在并且不是空的,则为真。
-S FILE 如果文件是一个套接字,则为真。
-t FD 如果FD在一个终端上打开,则为真。
-u FILE 如果文件是设置了用户身份的,则为真。
-w FILE 如果文件可以被你写入,则为真。
-x FILE 如果文件可由你执行,则为真。
-O FILE 如果文件由你有效拥有,则为真。
-G FILE 如果该文件由你的小组有效拥有,则为真。
-N FILE 如果文件在上次被读取后被修改,则为真。