如何提取shell脚本中命令行参数传递的特定模式

时间:2017-03-16 12:02:00

标签: shell

就像我将这个参数传递给命令行一样

trace.sh -f abc -t 20

我想在变量中取代(-t 20)。怎么做?

谢谢

1 个答案:

答案 0 :(得分:0)

非常基本的例子(不完全容易出错)

err() { echo "$@" >&2; return 1; }

declare -A options
options=([f]="abc" [t]="20") #the defaults

while getopts ":f:t:" opt
do
        case "$opt" in
                f) options[$opt]="$OPTARG" ;;
                t) options[$opt]="$OPTARG" ;;
                \?) err "Invalid option -$OPTARG" || exit 1 ;;
        esac
done

echo "t: ${options[t]}"
echo "f: ${options[f]}"