@HeroFromEarth

Как обработать в bash получение параметра вида param=value?

Здравствуйте.
Мне необходимо сделать скрипт, принимающий параметры вида --enable-all и --birds=5, при этом параметры могут передаваться в любой последовательности.
Обработку первых произвожу так:
for PARAM in $@; do
        case $PARAM in
                --enable-all)
                        EnableAll=1 ;;
                --enable-toster)
                        EnableToster=1 ;;
                -h|--help)
                        SHOW_HELP ;;
        esac
done

Как производить обработку вторых, т.е. забирать значения передаваемых параметров?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 2
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Попробуйте
for PARAM in $@; do
        case $PARAM in
                -ea=* | --enable-all=*)
                        ENABLEALL = "${i#*=}"
                        shift
                        ;;

Конструкция "${i#*=}" примерно эквивалентна `sed 's/[^=]*=//' <<< "$i"`
Ответ написан
@xibir
case $PARAM in
...
--birds=*) birds=${PARAM#--birds=} ;;
esac
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы