bash getopts循环未迭代

时间:2019-03-19 11:18:08

标签: bash loops getopts

我在很多bash脚本中使用了一个简单的循环,但是这个特定的循环似乎不起作用。

#!/bin/bash
function main
{
    echo here
    while getopts "Ah" cli_opt; do
      case ${cli_opt} in
        A)
            echo "op A"
            start_all
            return $?
        ;;
        *)
            echo invalid option
            showHep
            exit 1
        ;;
        h)
            showHelp
            exit 0
        ;;
        \?)
            invalid option
            showHelp
            exit 1
        ;;
        :)
            option -$OPTARG requires an argument
            showHelp
            exit 1
         ;;
      esac
    done
}

main
exit 0

不管我怎么称呼它,它只会到达“这里”。

1 个答案:

答案 0 :(得分:2)

解决方法,更改:

main

收件人:

main "$@"

"$@"是一个包含所有参数的数组。您需要将此数组传递给您的main函数。