Попытка сохранить аргумент в качестве переменной в скрипте bash - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь сохранить аргумент после "-ip" как переменную в скрипте bash:

if [ $# == 0 ]; then
        ARGS=""
else
        for var in "$@"
        do
                ARGS="$ARGS $var"
                if [ $var == "-ip" ];   then
                        getopts ip: $IP
                fi
        done
fi

echo $IP

Я никогда не пробовал 'getopts' в bash, я пробовал первый раз, как вы можете видетьвыше и не удалось буквально.

Любая помощь будет очень признателен,

Спасибо

1 Ответ

1 голос
/ 29 марта 2019

Вы можете избегать getopts все вместе и просто взять его с помощью регулярного выражения.

myvar=$(echo "$@" | sed 's/.*-ip\s\+\([0-9a-zA-Z\.]\+\)\s*.*/\1/g')

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

...