编写一个shell文件,判断用户输入的是否为一个文件,如果是文件的话是个什么样的文件(普通文件,目录还是别的?)
首先介绍一下test命令常用选项
选项 | 含义 |
---|---|
-e | 该文件名是否存在 |
-f | 该文件名是否存在且为文件(file) |
-d | 该文件名是否为目录 |
-z | 改文件名是否为空 |
除了使用test命令之外,这些命令也可以用[]
来代替(注意,’[‘和’]’两遍两边都要加空格)比如:
下面是判断用户输入的是否为文件的shell实现
#!/bin/bash
read -t 30 -p "please input a file name:" filename
if [ -z "$filename" ]
then
echo "nothing input"
exit 1
elif [ ! -e "$filename" ]
then
echo "the $filename is not exist"
exit 2
elif [ -f "$filename" ]
then
echo "$filename is a regular file"
elif [ -d "$filename" ]
then
echo "$filename is a directory"
else
echo "$filename is an other file"
fi
编辑完成后,退出编辑器,输入chmod 755 shell5.sh
执行shell5.sh的结果