这与其说是一个问题,不如说是一个提示: 目标是解析命令行AND创建有用的usage消息
代码:
for arg ; do
case "$arg" in
--edit) # edit file
cd "$(dirname $0)" && vim $0
;;
--noN) # do NOT create 'NHI1/../tags'
let noN=1
;;
--noS) # do NOT create 'HOME/src/*-latest/tags'
let noS=1
;;
--help)
;&
*) echo -e "usage: $(basename $0) options...\n$(awk '/--?\w+\)/' "$0")" ; exit ;;
esac
done
这将创建 usage 消息:
> build_tags.bash -x
usage: build_tags.bash options...
--edit) # edit file
--noN) # do NOT create 'NHI1/../tags'
--noS) # do NOT create 'HOME/src/*-latest/tags'
--help) # write this help message
线索是case目标的定义也是case目标的文档。
最初的描述已经有所需的答案。