Bash脚本 - Do-While循环中的可变范围

时间:2011-10-10 22:46:55

标签: bash global-variables scope increment

我有一个while循环,我在其中添加一个变量

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

当我回显$ variable的值时,我得不到输出......

这是将某些值添加回变量本身的正确方法(即i = i + j) 此外,在bash脚本的上下文中,这种情况下的范围是什么..

2 个答案:

答案 0 :(得分:1)

return会返回一个“退出”代码,一个数字,而不是您要查找的内容。你应该做echo

答案 1 :(得分:0)

问题是变量在范围之外是不可见的(赋值不会在循环外传播)。

首先想到的是在子shell中运行命令并强制循环发出变量:

variable=$(variable=0; while read line; do variable=$((variable+someOtherVariable)); done; echo $variable)