将 getopts 与无开关路径一起使用

Using getopts with a switchless path

我正在尝试使用 getopts 编写一个简短的脚本。我希望它采用可选开关,或者只是作为默认值运行。我有一个 -d 开关来启用调试,我希望每个其他参数都是一条路径。理想的命令行看起来是这样的,路径是可选的,理论上是无限的:

[=3=] [-d] [/path1[ /path2[ ...]]]

我目前正在使用 getopts,如下所示:

while getopts ":d" opt; do
    case $opt in
        d)
            DEBUG=true
            ;;
        h)
            echo USAGE: [==] \[-d\] \[\/mount\/point\/1 ...\]
            exit 0
            ;;
        \?)
            echo Incorrect syntax
            ;;
    esac
done

我可以在 while getopts 部分和 case 集中放置什么,以允许输入所需的路径?

您不需要在循环中或 getopts 调用任何东西。 getopts 在第一个非选项处停止。

在你的循环之后,你所有的路径仍然在可用的位置参数中。

此外,您的 getopts 字符串中没有 h,因此它无效。