输入处理
位置参数#
Positional Parameters,脚本的位置参数。
$0
:脚本名,包含路径。$1
:第一个参数,以此类推。${10}
:大于 9 的参数要用花括号。
BASENAME#
可以去掉脚本的路径,只保留名称。
脚本中的用法。
特殊参数#
参考这里。
移动参数#
shift
命令可以把位置参数左移一位。
脚本选项#
选项就是以在单个连字符后跟单个字母,如:-a
。由于选项和参数都是出现在脚本的后面,为了区分开来,一般是用双连字符 --
,左边是选项,右边是参数,例如。
要在脚本中正确解释选项和参数,不是一件容量的事情,为此官方提供了两个工具。
getopt
- 外部命令。
- 支持长选项,如
--help
。 - 适合复杂的命令行工具。
getopts
Github 上也有不少选项解释项目。
getopt 命令#
optstring
:选项的定义。parameters
:选项的内容。
例如对于 optstring=ab:c
。
- 单字母
a
和 c
代表无值选项。 - 字母
b
后跟 :
表示有值选项。
看看下面例子的输出。
可以看到他使用 --
把选项和参数分隔开了。
getopts 命令#
getopts
是 Bash 的内置命令,它会逐个解释选项,然后把选项的信息存储在特定变量中,方便脚本访问。这才是给我这种小菜鸡用的命令。
name
:当前选项的名称。OPTIND
:每处理一个项目,该值会加 1。OPTARG
:如果选项有值,会保存在这个变量中。