Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 如何在父shell和子shell之间使用相同的bash变量大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个类似于以下的bash脚本: function test { running=$(( $running - 1 )) } running=0 test & 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)

如果您只想有效地返回一个值,那么只需返回该函数的值即可.

大佬总结

以上是大佬教程为你收集整理的linux – 如何在父shell和子shell之间使用相同的bash变量全部内容,希望文章能够帮你解决linux – 如何在父shell和子shell之间使用相同的bash变量所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: