Bash Script - переменная область действия в цикле Do-While - PullRequest
1 голос
/ 11 октября 2011

У меня есть цикл do while, где я добавляю переменную к себе

while read line 
do
      let variable=$variable+$someOtherVariable
done
    return $variable

Когда я повторяю значение переменной $, я не получаю вывод ...

Этоправильный способ добавить какое-то значение обратно в саму переменную (т.е. i = i + j) Кроме того, в контексте сценариев bash, какова область применения в этом случае ..

Ответы [ 2 ]

1 голос
/ 11 октября 2011

return возвращает код выхода, число, а не то, что вы ищете.Вы должны сделать echo.

0 голосов
/ 11 октября 2011

Проблема в том, что переменная не видна за пределами области (назначение не распространяется за пределы цикла).

Первый способ, который приходит на ум, - это запустить команду в подоболочке и заставитьцикл для выдачи переменной:

variable=$(variable=0; while read line; do variable=$((variable+someOtherVariable)); done; echo $variable)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...