、输入一个文件test,判断文件是否存在,若不存在,则输出:do not exit;若存在,则判断是文件还是目录,结果输出:filename is file 或者 filename is directory(用test命令完成)
时间: 2024-11-27 22:12:42 浏览: 3
linux shell常用循环与判断语句(for,while,until,if)使用方法
在Linux shell中,你可以使用`test`命令或者更现代的`[ -f ]`和`[ -d ]`条件测试来完成这个任务。首先检查文件`test`是否存在:
```bash
if [ -e test ]; then
# 接下来分别检查是文件还是目录
if [ -f test ]; then
echo "filename is file"
elif [ -d test ]; then
echo "filename is directory"
else
echo "do not exist"
fi
else
echo "do not exist"
fi
```
这段脚本会依次检测文件是否存在(`-e`),如果存在再进一步区分是文件(`-f`)还是目录(`-d`)。如果文件不存在,就会直接输出"do not exist"。
注意,这里的`test`命令实际上已经被`[[ ... ]]`替代,但在某些旧版本的shell中仍然有效。另外,如果文件权限不足,`[ -e test ]`会返回真,这时你可能需要额外检查`-r`权限来确认能否读取文件信息。
阅读全文