#!/bin/sh
if [ -z $1 ]; then
echo "please input a file"
exit 1
fi
if [ -e $1 ]; then
echo "$1 file exit"
else
echo "$1 file no exit"
exit 1
fi
if [ -f $1 ]; then
echo "$1 is a file"
elif [ -d $1 ]; then
echo "$1 is a directory"
else
echo "$1 is other file"
fi
说明:
1、$1 是shell终端输入的第一个参数,例如下面的a.txt
chenqw@ubuntu092:~$ sh test.sh a.txt
2、-b file 如果文件为一个块特殊文件,则为真
-c file 如果文件为一个字符特殊文件,则为真
-d file 如果文件为一个目录,则为真
-e file 如果文件存在,则为真
-f file 如果文件为一个普通文件,则为真
-g file 如果设置了文件的 SGID 位,则为真
-G file 如果文件存在且归该组所有,则为真
-k file 如果设置了文件的粘着位,则为真
-O file 如果文件存在并且归该用户所有,则为真
-p file 如果文件为一个命名管道,则为真
-r file 如果文件可读,则为真
-s file 如果文件的长度不为零,则为真
-S file 如果文件为一个套接字特殊文件,则为真
-t fd 如果 fd 是一个与终端相连的打开的文件描述符(fd 默认为 1),则为真
-u file 如果设置了文件的 SUID 位,则为真
-w file 如果文件可写,则为真
-x file 如果文件可执行,则为真