linux – 如何在父shell和子shell之间使用相同的bash变量
发布时间:2020-12-14 02:12:01 所属栏目:Linux 来源:网络整理
导读:我有一个类似于以下的bash脚本: function test{ running=$(( $running - 1 ))}running=0test echo $running 因为测试功能在子shell中运行,所以它不会影响运行变量,并且我得到0回显到屏幕.我需要子shell才能更改父shell变量,如何做到这一点?我试过出口但无
我有一个类似于以下的bash脚本:
function test { running=$(( $running - 1 )) } running=0 test & echo $running 因为测试功能在子shell中运行,所以它不会影响运行变量,并且我得到0回显到屏幕.我需要子shell才能更改父shell变量,如何做到这一点?我试过出口但无济于事. 编辑感谢所有有用的答案,我想在后台运行此功能的原因是允许同时运行多个功能.我需要能够回调父脚本,告诉它何时完成所有功能.我一直在使用pid来做这个,但我不想检查循环中是否有多个进程不断存在. 解决方法
你不能真的.每个shell都有一个环境副本.
见Can a shell script set environment variables of the calling shell? 但是对于您在示例中所做的事情,请尝试将此作为您的脚本: #!/bin/bash function testSO { running=$(( $running - 1 )); return $running; } 并将其调用为: running=$(testSO) 如果您只想有效地返回一个值,那么只需返回该函数的值即可. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |