当前位置:  开发笔记 > 编程语言 > 正文

记录shell脚本的参数

如何解决《记录shell脚本的参数》经验,为你挑选了4个好方法。

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

例如:

#!/usr/bin/env bash

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

我不喜欢这个特定模板的一些事情:

脚本的文件名(myScript)出现在文件本身中

参数描述看起来很怪异

之前的领先空间在$视觉上是有用的,但可能会导致语言与块注释混淆,导致一些验证工具抱怨混合/不一致的缩进(例如,此块中的空格,代码选项卡 - 当然,提供一个选项卡)

这有什么指导方针吗?



1> Chas. Owens..:

传统上,您在usage()函数中记录您的参数:

#!/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



2> Eddy..:

我通常将我的用法包装在函数中,所以我可以从-h param等中调用它.

#!/bin/bash
usage() {
    cat <


你需要引用`$ 1`因为它可以包含空格而```只是一个常规程序,它将`-z`作为第一个参数,```last.如果`$ 1`包含`"x -o 1 -eq 1"`,它将始终显示使用信息.

3> leogtzr..:

我会建议使用heredoc:

usage () {
    cat <

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

代替:

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

我认为它比所有这些回声线更干净.



4> John Ellinwo..:

执行此操作的Vim bash IDE:

#!/bin/bash
#===============================================================================
#
#          FILE:  test.sh
#
#         USAGE:  ./test.sh
#
#   DESCRIPTION:
#
#       OPTIONS:  ---
#  REQUIREMENTS:  ---
#          BUGS:  ---
#         NOTES:  ---
#        AUTHOR:  Joe Brockmeier, jzb@zonker.net
#       COMPANY:  Dissociated Press
#       VERSION:  1.0
#       CREATED:  05/25/2007 10:31:01 PM MDT
#      REVISION:  ---
#===============================================================================


呃,看起来像COBOL程序的识别部分.*不寒而栗*.
推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有