сценарии bash добавить аргументы

Я создал сценарий, который принимает параметры и аргументы. Я хочу вставить аргумент - help .

Я уже знаю, как анализировать обычные аргументы с помощью - , но я не знаю, как разбирать - .

Чтобы проанализировать параметры для test.sh -h , я использую следующую проверку:

while getopts ":h" opt; 
do 
case $opt in
    h ) {
            echo "help!!!"
            exit 1
    } ;;
esac
done

Но я хочу иметь возможность вызывать сценарий с помощью test.sh --help .

P.S. Я использую Ubuntu 12.04… но это не имеет особого значения.

2
05.04.2021, 19:09
1 ответ

getopts не может обрабатывать длинные аргументы:

$ ( set -- --help ; while getopts -- -help opt; do echo "$opt"; done )
-
h
e
l
p

Если вы хотите обрабатывать длинные аргументы, вам нужно написать свой собственный синтаксический анализатор.

GNU-версия getopt действительно поддерживает синтаксический анализ длинных параметров, но вам лучше не использовать ее; он не переносится, и версии, отличные от GNU, имеют тенденцию ломаться по определенным типам аргументов. Например, они часто не могут правильно проанализировать аргументы с пробелами в них.

2
29.04.2021, 00:51

Теги

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