📅  最后修改于: 2023-12-03 15:11:17.444000             🧑  作者: Mango
这是一个简单的 Shell 脚本,用于检查用户传递的参数是否是一个有效的文件或目录。程序员可以使用此脚本作为实用工具来验证输入、输出、参数等。
#!/bin/bash
# check if a passed argument is a valid file/directory
for arg in "$@"
do
if [ -e "$arg" ]; then
echo "$arg exists"
if [ -f "$arg" ]; then
echo "$arg is a file"
elif [ -d "$arg" ]; then
echo "$arg is a directory"
else
echo "$arg is not a file or directory"
fi
else
echo "$arg does not exist"
fi
done
该脚本使用了 Shell 中的 for
循环和 if
语句来遍历用户传递的参数。对于每个参数 $arg
,脚本首先检查是否存在该文件或目录,通过 -e
参数来实现。如果存在,脚本会输出相应的信息。
接下来,脚本使用 -f
和 -d
参数分别检查 $arg
是否为文件或目录。如果是文件,则输出 $arg is a file
,如果是目录,则输出 $arg is a directory
。如果既不是文件也不是目录,则输出 $arg is not a file or directory
。
最后,如果文件或目录不存在,则输出 $arg does not exist
。
以下是该脚本的一些示例输出:
检查单个文件:
$ ./file_check.sh text.txt
text.txt exists
text.txt is a file
检查单个目录:
$ ./file_check.sh test
test exists
test is a directory
检查不存在的文件或目录:
$ ./file_check.sh nosuchfile.txt nosuchdir
nosuchfile.txt does not exist
nosuchdir does not exist
这个 Shell 脚本可以很方便地验证输入参数的有效性,特别是在需要处理文件和目录时。程序员可以根据自己的需要修改和扩展脚本,以满足特定的用例。