Как увеличить переменную l oop для получения следующего значения при переборе аргументов bash - PullRequest
0 голосов
/ 01 марта 2020

Мне нужно реализовать следующий псевдокод, используя bash.

tmp_1=""
tmp_2=""
for var in "arg_list"
do
   if[var is eq to "str_1"]
   do
      var++ # shift the loop iter to next argument
      tmp_1 = var # assign the next string/argument to 'tmp_1' variable
   done
done

Например: если я запускаю свой bash скрипт следующим образом, тогда значение tmp_1 должно быть 'str_2'

<my_script>  str_1  str_2

Я пытаюсь сделать это с помощью 'shift' в bash, но мне это не сработало. как сделать эту реализацию?

1 Ответ

4 голосов
/ 01 марта 2020

Не используйте for l oop. Просто обработайте $1 каждый раз через l oop и используйте shift для настройки списка аргументов.

while [ $# -gt 0 ]
do
    if [ "$1" = "str_1" ]
    then
        shift
        tmp_1="$1"
    fi
    shift
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...