bash命令行参数

我想写一个bash脚本,它采用不同的参数。 它应该像普通的Linux控制台程序一样使用:

my_bash_script -p 2 -l 5 -t 20 

所以值2应该被保存在一个名为pages的variables中,并且参数l应该被保存在一个名为length的variables中,值20应该被保存在一个可变的时间中。

做这个的最好方式是什么?

使用getopts内build:
这里有一个教程

 pages= length= time= while getopts p:l:t: opt; do case $opt in p) pages=$OPTARG ;; l) length=$OPTARG ;; t) time=$OPTARG ;; esac done shift $((OPTIND - 1)) 

shift $((OPTIND - 1))移动命令行参数,以便您可以访问脚本的可能参数,即$1, $2, ...

东西沿线

 pages= length= time= while test $# -gt 0 do case $1 in -p) pages=$2 shift ;; -l) length=$2 shift ;; -t) time=$2 shift ;; *) echo >&2 "Invalid argument: $1" ;; esac shift done