使用具有无开关路径的getopts

时间:2015-01-06 21:57:11

标签: bash

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

$0 [-d] [/path1[ /path2[ ...]]]

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

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

我可以在while getopts部分和case集合中添加哪些内容,以便根据需要输入路径?

1 个答案:

答案 0 :(得分:2)

你不需要循环或getopts调用它。 getopts在第一个非选项停止。

在循环之后,所有路径仍将位于可供使用的位置参数中。

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