Как разрешить аргумент и Нет аргументов и действуйте по-разному на них с ГУМОКТЫ

Я хочу иметь настройку настроек для моего сценария таким образом, чтобы он не принимал аргумент ( -P ), но так, чтобы он также мог принять аргумент (-PR-библиотека ). Оба должны быть приняты. Они (аргумент, а не аргумент), как разрешены. Аргумент должен быть разрешен любую строку. См. Ниже:

while getopts "p:sdih" opt; do
                case ${opt} in
                        p )
                                #WHEN NO ARGUMENT IS GIVEN, DO THIS

                                selection="plex"

                                #WHEN AN ARGUMENT IS GIVEN, DO THIS

                                selection="plex"
                                argument=true
                                optarg="$OPTARG"
                                ;;

                        s )
                                selection="sonarr"
                                ;;

                        d )
                                selection="deluge"
                                ;;
                        i )
                                selection="info"
                                ;;

                        h )
                                usage | column -t -s "|"
                                exit
                                ;;
                        \? )
                                echo "Invalid option"
                                usage | column -t -s "|"
                                exit
                                ;;
                esac
        done 2>/dev/null
        shift $((OPTIND -1))

Вот как это Нужно работать. Но я новичок, чтобы добиться, поэтому я не знаю, как это сделать ...

1
задан 12 March 2021 в 00:33

1 ответ

Чтобы проверить отсутствующие аргументы, начать OptString с толстой кишкой : Изменение «P: SDIH» К «: P: SDIH»

Затем добавьте аргумент корпуса до \?) Вроде так:

:) echo "Option $OPTARG has no argument."
   exit
   ;;

Вы можете проверить наличие более одного варианта, оценивая Optarg "

Если отсутствует опция-аргумент:

  • Если первый символ OPTSTRING - это колон , переменная оболочки, указанная именем, должна быть установлена ​​на символ и переменная оболочки Optarg должна быть установлена ​​на символ опции найденный.

  • В противном случае переменная оболочки, указанная по имени, должна быть установлена ​​на символ символ символа , вариабельная оболочка Optarg должна быть Unset, и диагностическое сообщение должно быть записано в стандартную ошибку. Это условие считается ошибкой, обнаруженной в Путь аргументов были представлены на приложение, но должны не ошибка в обработке Глама; Диагностическое сообщение должно Будьте написаны как указано, но состояние выхода должно быть ноль.

Больше информации можно найти здесь

0
ответ дан 18 March 2021 в 23:27

Другие вопросы по тегам:

Похожие вопросы: