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

时间:2012-10-19 21:03:41

标签: bash getopt

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

args=`getopt abo: $*`
errcode=$?
set -- $args

最后一行实现了什么?

2 个答案:

答案 0 :(得分:5)

This解释得非常好。本质上,它是将具有多个标志的单个参数分解为多个参数,每个参数都带有一个标志:

您是否将脚本称为

script -ab

script -a -b

set -- $args之后,$1-a$2将为-b。它使处理更容易。

BTW,getopts好多了

答案 1 :(得分:4)

set更新脚本的位置参数。

#! /bin/bash
echo "$*"
set -- $1 baz
echo "$*"

如果使用/path/to/script foo bar调用此脚本,则输出为:

foo bar
foo baz