петля bash getopts не повторяется - PullRequest
0 голосов
/ 19 марта 2019

У меня есть простой цикл, который я использую во многих моих скриптах 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 Ответ

2 голосов
/ 19 марта 2019

Исправление, изменение:

main

на:

main "$@"

"$@" - это массив, содержащий все аргументы.Вам нужно будет передать этот массив вашей функции main.

...