toc*_*777 6 linux variables bash scripting
我有一个类似于以下的bash脚本:
function test
{
running=$(( $running - 1 ))
}
running=0
test &
echo $running
因为测试功能在子shell中运行,所以它不会影响运行变量,并且我得到0回显到屏幕.我需要子shell才能更改父shell变量,如何做到这一点?我试过出口但无济于事.
编辑感谢所有有用的答案,我想在后台运行此功能的原因是允许同时运行多个功能.我需要能够回调父脚本,告诉它何时完成所有功能.我一直在使用pid来做这个,但我不想检查循环中是否有多个进程不断存在.
你真的不能。每个 shell 都有一个环境副本。
请参阅shell 脚本可以设置调用 shell 的环境变量吗?
但对于您在示例中所做的事情,请尝试将其作为脚本:
#!/bin/bash
功能测试SO
{
运行=$(($运行 - 1));
返回$运行;
}
并将其调用为:
运行=$(testSO)
如果您只想有效地返回一个值,那么只需从函数中返回值即可。
| 归档时间: |
|
| 查看次数: |
6475 次 |
| 最近记录: |