## 1. 常规判断输出的参数个数是否满足条件 ## 缺点:参数不能乱序,可读性较差 options1(){ if [[ $# != 3 ]]; then echo -e "USAGE: $ sh $0 str1 str2 ..." exit 1; fi } ## 2. 设置参数时,指定参数的变量名 ## 缺点:灵敏性低,无法检测参数传入的准确 options2(){ while getopts ":a:b:c:" opt do case $opt in a) str1=$OPTARG echo -e "参数a: $str1" ;; b) str2=$OPTARG echo -e "参数b: $str2" ;; c) str3=$OPTARG echo -e "参数c: $str3" ;; :) echo -e "没有输入任何项: -$OPTARG" exit 1 ;; ?) echo -e "错误的传参方式!!!\n\nUSAGE: $ sh $0 -a str1 -b str2 -c str3" exit 1 ;; esac done } ## 3. 结合长短参数设置,灵活处理 ## 缺点:一个选项只能读入一个参数,多余 usage(){ cat <<EOF Usage: $0 -i readid -s ATGC... [OPTION] ...
Known values for OPTION are:
-i/--readname read name/FusionName -s/--sequence query sequence -h/--help print this help and exit -b/--blat the blat path (default: $blatPath_default) -d/--database the database path (default: $database_default) -a/--anno the transvar path (default: $transvar_default) -c/--chr the query chr (default: all) --show print this result (default: false)