首页 > 解决方案 > getopts 命令不接受需要参数的多个选项

问题描述

我在使用 getopts 命令时遇到问题。

当我想使用需要 SAME 参数的选项时,它会在第一个需要参数的选项(例如 -i )之后停止运行程序。因此,当我希望它采用选项 -id 或 -i -d 时,它将在使用“-i”选项后停止运行 while 循环并忽略 -d 选项。

如何让循环继续并执行 -d 选项?

传递的参数的格式可以是:“-id 参数”或“-i -d 参数”

我目前正在使用 $p 来获取当前为每个选项传递的最后一个参数。这是破折号中的linux ubuntu shell:

To make the code smaller and quicker to read:

for p do :; done

    echo arguments === $1 $2 $3 
    echo p = $p 
    while getopts ":hva:b:d:g:i:u:w:" opt; 
    do
        case "$opt" in

        i)
        checkdir $p
        fileinfo $p 
 ;;

        ***OTHER OPTIONS FOLLOW SIMILAR FORMAT***

        esac

    done

标签: linuxbashgetopts

解决方案



推荐阅读