Bash脚本- Do-While循环中的变量作用域



我有一个do while循环,我为自己添加一个变量

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

当我回显$variable的值时,我没有得到输出…

这是正确的方式添加一些值返回到变量本身(即i = i+j)另外,在bash脚本上下文中,本例中的作用域是什么?

return返回一个"退出"代码,一个数字,而不是您正在寻找的。你应该做一个echo

问题是变量在作用域外不可见(赋值不会在循环外传播)。

想到的第一种方法是在子shell中运行命令,并强制循环发出变量:
variable=$(variable=0; while read line; do variable=$((variable+someOtherVariable)); done; echo $variable)

相关内容

  • 没有找到相关文章

最新更新