用法:找不到命令

时间:2014-04-03 18:17:53

标签: bash shell command-line-arguments sh

我有一个文件从命令行输入解析选项标记,如果你传入-h,它会给出错误。

h)  
    usage
    exit 1
;;

返回:usage: command not found

有人知道这里发生了什么吗?我发现了许多使用usage的示例,所以我认为它应该可行。我似乎找不到搜索谷歌的任何相关信息。

4 个答案:

答案 0 :(得分:3)

您需要在之前添加到您的shell脚本,然后再调用usage

usage() {
    echo  "$0: some help text"
}

答案 1 :(得分:3)

您缺少的是用法的函数定义:

function usage {
    cat <<-USAGE
         Now you can define your usage here
         take as many lines as you want. When
         you finish, just put "USAGE" on a line
         by itself.
    USAGE
}

usage的电话之前放这个。请注意,USAGE行必须仅以制表符开头。

答案 2 :(得分:2)

这些工作示例在其源中定义了一个名为usage的函数。

如您所见,当您提供-h标志时,它会被调用。

将其移至函数的通常原因是

  • 它不会使代码混乱
  • 可以重复使用,例如当你提供无效的论据。

答案 3 :(得分:0)

usage不是命令,而是您提供的自定义shell函数的通用名称,用于输出脚本的使用信息。