getopt之后'set-$ args'的目的是什么?

Lop*_*Sae 3 bash getopt

在bash中使用getopt的通常示例如下

args=`getopt abo: $*`
errcode=$?
set -- $args
Run Code Online (Sandbox Code Playgroud)

最后一行实现了什么?

Mis*_*ble 5

很好地解释了这一点。本质上,它是将带有多个标志的单个参数分解为每个带有单个标志的多个参数:

是否将脚本称为

script -ab
Run Code Online (Sandbox Code Playgroud)

或作为

script -a -b
Run Code Online (Sandbox Code Playgroud)

之后set -- $args$1将会是-a$2将会是-b。它使处理更加容易。

顺便说一句,getopts好多了