shell - 检查参数数量是否正确

标签 shell scripting

我如何检查参数数量是否正确(一个参数)。如果有人尝试调用脚本而不传递正确数量的参数,并检查以确保命令行参数确实存在并且是一个目录。

最佳答案

#!/bin/sh
if [ "$#" -ne 1 ] || ! [ -d "$1" ]; then
  echo "Usage: $0 DIRECTORY" >&2
  exit 1
fi

翻译:如果参数数量不(数字)等于 1 或者第一个参数不是目录,则将使用情况输出到 stderr 并退出并显示失败状态代码。

更友好的错误报告:

#!/bin/sh
if [ "$#" -ne 1 ]; then
  echo "Usage: $0 DIRECTORY" >&2
  exit 1
fi
if ! [ -e "$1" ]; then
  echo "$1 not found" >&2
  exit 1
fi
if ! [ -d "$1" ]; then
  echo "$1 not a directory" >&2
  exit 1
fi

关于shell - 检查参数数量是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341630/

相关文章:

c - execvp(grep) 后失去控制

shell - 有什么方法可以通过按组合键返回到 Fish shell 中准备输入的命令吗?

打印 ${IFS@Q} 时出现 Bash 异常

c - 向 C 添加程序参数

linux - 将零填充到 CSV unix/Linux 文件中的列

python - 每次测试后如何重置 Django 测试数据库 ID?

bash - 当使用空参数运行 grep 时,为什么 "while read"循环会停止?

bash - 根据 Bash 中的输入生成逗号分隔的数字序列

scripting - 自动化 GDB 调试 session 的最佳方法是什么?

c# - Roslyn 脚本 - 没有 "System"的脚本