Bash 脚本 - Do-While 循环中的变量作用域
我有一个 do while 循环,我在其中向自身添加一个变量
while read line
do
let variable=$variable+$someOtherVariable
done
return $variable
当我回显 $variable 的值时,我没有得到任何输出...
这是将一些值添加回变量本身的正确方法吗(即 i = i+j ) 另外,在 bash 脚本编写的上下文中,本例的范围是什么。
I have a do while loop where I am adding a variable to itself
while read line
do
let variable=$variable+$someOtherVariable
done
return $variable
When I echo the value of $variable I get no output ...
Is this the correct way to add some value back to the variable itself (i.e. i = i+j)
Also, in the context of bash scripting what is the scope in this case..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
return
返回一个“退出”代码,一个数字,而不是您要查找的内容。您应该执行echo
。return
returns an "exit" code, a number, not what you are looking for. You should do anecho
.问题是变量在作用域之外不可见(赋值不会传播到循环之外)。
我想到的第一种方法是在子 shell 中运行命令并强制循环发出变量:
The problem is that the variable is not visible outside of the scope (the assignment is not propagated outside the loop).
The first way that comes to mind is to run the command in a subshell and forcing the loop to emit the variable: