linux - 如果没有传递参数,如何显示帮助文本

标签 linux bash

我最近一直在使用 getopts,并且已经设置好所有内容。我有一个问题。我希望它能工作,这样如果有人没有在命令行上输入参数,他们就会得到帮助文本,例如:

$ ./script
$ help: xyz - argument must be used.

这是我目前拥有的。

#!/bin/bash

function helptext {
    # ...
}

function mitlicense {
    # ...
}


while getopts "hl" opt; do
  case $opt in
    h) helptext >&2
      exit 1
    ;;
    l) mitlicense >&2
      exit 0
    ;;
    \?) echo "Invalid option: -$OPTARG" >&2
      exit 1
    ;;
    :) echo "Option -$OPTARG requires an argument." >&2
      exit 1
    ;;
    *) helptext >&2
      exit 1
    ;;
  esac
done

最佳答案

使用 if 测试验证用户输入,如下所示。

test-z 选项在 -z 后面的字符串长度为零时返回 true。

 if [ -z "$1" ]
 then
  helptext
  exit 1
 fi

关于linux - 如果没有传递参数,如何显示帮助文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16120622/

相关文章:

非 root 用户无法读取在 linux 上具有文件写入/输出的 JAVA 应用程序

linux - 无法在 WSL 中导出环境变量

bash - 错误 : must use subscript when assigning associative array

bash - 如何使用 bash 脚本从用户输入中定义别名?

bash - AWS CodeBuild,buildspec.yml "bad substitution"错误

regex - 使用 linux 重新格式化被屠杀的文本

linux - 在 Unix 上将目录推送到 $PATH 以调用不带前缀的二进制文件

bash 函数返回 "command not found"

linux - 检查目录(符号链接(symbolic link))是否仍指向同一位置

linux - 在 x64 位程序集中执行系统命令?