【问题标题】:Argument check- bash参数检查 - bash
【发布时间】:2012-09-30 21:08:56
【问题描述】:

假设我有一个带有两个参数的脚本,有没有办法检查表单中是否有一个或 2 个以上的参数:

if [ check if arguments don't equal 2 ]; then
    echo Too many arguments
    exit 1
fi

【问题讨论】:

  • 你尝试过“man bash”吗?您从手册页中没有理解什么?
  • 那些在没有参数的情况下调用你的脚本的人如果被告知“参数太多”会感到惊讶。如果您期望恰好有两个参数,则消息可能应该类似于echo "Usage: $0 from to" >&2,它标识命令(通过$0)和正确用法,并将信息发送到标准错误(因此它不会在管道,例如)。我的大部分脚本都使用$(basename $0 .sh) 来识别正在运行的命令。

标签: bash arguments


【解决方案1】:
if [ $# -ne 2 ]; then
   # Number of arguments was not 2
fi

变量$# 保存传递参数的数量。

【讨论】:

  • 如果这是专门针对bash(而不是任何与POSIX兼容的shell),更易读的替代方案是if (( $# != 2 )); then
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-29
  • 2013-08-17
  • 1970-01-01
  • 2023-01-29
  • 2013-09-05
  • 2015-07-21
相关资源
最近更新 更多