Shell 脚本:如何使用 getopts 获取最后一个参数和取消处理参数

发布于 2024-10-31 16:52:15 字数 630 浏览 4 评论 0原文

有一个名为 cower 的程序。 (cower 是一个 Archlinux AUR 下载器。)

cower -[udhsc] target

我编写了一个名为 xcower

xcower -[Syudhsc] target1 target2 target3 ...

xcower 采用 2 个附加参数 S 和 y。并将剩下的论点传递给畏缩。我不知道如何获得剩余的参数和目标。

顺便说一句,xcower 的目标是通过 1 个命令从新安装的 Arch 安装 AUR 软件包。

There is a program named cower. (cower is an Archlinux AUR downloader.)

cower -[udhsc] target

I am write a shell script named xcower.

xcower -[Syudhsc] target1 target2 target3 ...

xcower take 2 additional parameter S and y. and pass the remained arguments to cower. I don't know how to get remain arguments and targets.

BTW, xcower goals is install AUR packages from fresh installed Arch in 1 command.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天冷不及心凉 2024-11-07 16:52:15

您可以尝试使用 shiftOPTIND 变量的组合,例如(不是答案)

shift $(($OPTIND - 1))

来自 bash 参考

OPTIND 下一个参数的索引
由内置的 getopts 处理
命令(参见 shell 内置命令
如下)。

移动[n]
n+1 ... 中的位置参数已重命名
到 $1 .... 代表的参数
$# 到 $#-n+1 的数字是
未设置

you can try using shift and combination of OPTIND variable eg (not answer)

shift $(($OPTIND - 1))

From bash reference

OPTIND The index of the next argument
to be processed by the getopts builtin
command (see SHELL BUILTIN COMMANDS
below).

shift [n]
The positional parameters from n+1 ... are renamed
to $1 .... Parameters represented by
the numbers $# down to $#-n+1 are
unset

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文