shell 进程间的Bash共享变量?[已关闭]

1bqhqjot  于 2023-08-07  发布在  Shell
关注(0)|答案(2)|浏览(109)

已关闭。此问题为opinion-based。它目前不接受回答。
**希望改进此问题?**请更新问题,以便editing this post能够以事实和引文来回答。

3天前关闭。
Improve this question
我有一个特定的值,我在我的机器上运行的一堆脚本/函数需要访问它,并且它经常变化。对于上下文,它是部署到我们工作的主要应用程序的生产的当前提交的git标签,但这并不重要。我通过在当前shell的上下文中将其设置为局部变量来自动化它,这很好,但是我打开的任何其他shell都无法访问它。这是不幸的,因为我经常打开多个shell,并希望在所有这些shell中使用此变量。
什么是传递这个值的最佳方法,让每个开放的shell都可以访问它?我曾考虑将其设置为环境变量,但在已经打开的shell中,更改环境变量并不会影响其值,因此这不会起作用。显然,我可以在我的.bashrc中更新它,但这需要在每个打开的shell中重新运行source命令,我很懒。在Bash shell之间共享值的最佳方式是什么?

zzlelutf

zzlelutf1#

我喜欢Redis-它是轻量级的,快速的,可以从任何语言(Python,bash,Perl,PHP,C/C++,Ruby)和网络上访问。它支持字符串,集合,排序集合,列表,队列,哈希,原子整数等:

# Set variable to 10
redis-cli set fred 10
OK

# Retrieve variable
redis-cli get fred
"10"

字符串

f1tvaqid

f1tvaqid2#

到目前为止,我发现的最好的方法是将值存储在一个所有运行的shell都可以访问的文件中,然后在我的.bashrc中编写一个小 Package 器函数,为任何需要它的脚本获取/设置值。我的看起来像这样:

# With one argument, stores the RC value in a file for scripts to access. With no args, reads it out
rc() {
    if [ $# -eq 1 ]
    then
        echo $1 > /path/to/.rc
    else
        cat /path/to/.rc
    fi  
}

字符串
然后,任何需要使用语法$(rc)访问它的脚本都可以调用它,因此,例如,如果您只是想将其打印出来,则可以调用echo $(rc)
我很想知道是否有更好的方法来做到这一点!

相关问题