📌  相关文章
📜  用于检查每个 Paased 参数是否是文件或目录的 Shell 脚本(1)

📅  最后修改于: 2023-12-03 15:11:17.444000             🧑  作者: Mango

用于检查每个 Paased 参数是否是文件或目录的 Shell 脚本

这是一个简单的 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 脚本可以很方便地验证输入参数的有效性,特别是在需要处理文件和目录时。程序员可以根据自己的需要修改和扩展脚本,以满足特定的用例。