首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >记录shell脚本的参数

记录shell脚本的参数
EN

Stack Overflow用户
提问于 2009-03-26 22:21:51
回答 6查看 63.8K关注 0票数 56

是否有记录shell脚本参数的约定?

例如:

#!/usr/bin/env bash

# <description>
#
# Usage:
#  $ ./myScript param1 [param2]
# * param1: <description>
# * param2: <description>

关于这个特定的模板,有一些我不喜欢的地方:

itself

  • parameter
  • 脚本的文件名(myScript)出现在文件中描述似乎很奇怪
  • $之前的前导空格在视觉上很有用,但可能会导致带有块注释的语言混淆,导致一些验证工具抱怨混合/不一致的缩进(例如,此块中的空格,代码的制表符-当然,如果用户更喜欢制表符)

这方面有什么指导原则吗?

EN

回答 6

Stack Overflow用户

发布于 2009-03-26 22:34:31

传统上,您需要在the ()函数中记录参数:

#!/bin/bash

programname=$0

function usage {
    echo "usage: $programname [-abch] [-f infile] [-o outfile]"
    echo "  -a      turn on feature a"
    echo "  -b      turn on feature b"
    echo "  -c      turn on feature c"
    echo "  -h      display help"
    echo "  -f infile   specify input file infile"
    echo "  -o outfile  specify output file outfile"
    exit 1
}

usage
票数 60
EN

Stack Overflow用户

发布于 2016-11-14 08:39:34

我会使用heredoc重新评论:

usage () {
    cat <<HELP_USAGE

    $0  [-a] -f <file>

   -a  All the instances.
   -f  File to write all the log lines
HELP_USAGE
}

而不是:

echo "$0  [-a] -f <file>"
echo
echo "-a  All the instances."
echo "-f  File to write all the log lines."

我认为它比所有这些回音线都干净得多。

票数 29
EN

Stack Overflow用户

发布于 2009-03-26 22:33:48

我通常将我的用法包装在函数中,这样我就可以从-h参数等调用它。

#!/bin/bash
usage() {
    cat <<EOM
    Usage:
    $(basename $0) Explain options here

EOM
    exit 0
}

[ -z $1 ] && { usage; }
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/687780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档