是否存在记录shell脚本参数的约定?
例如:
#!/usr/bin/env bash ## # Usage: # $ ./myScript param1 [param2] # * param1: # * param2:
我不喜欢这个特定模板的一些事情:
脚本的文件名(myScript
)出现在文件本身中
参数描述看起来很怪异
之前的领先空间在$
视觉上是有用的,但可能会导致语言与块注释混淆,导致一些验证工具抱怨混合/不一致的缩进(例如,此块中的空格,代码选项卡 - 当然,提供一个选项卡)
这有什么指导方针吗?
传统上,您在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
我通常将我的用法包装在函数中,所以我可以从-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程序的识别部分.*不寒而栗*.