加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何写一个bash脚本来设置全局环境变量?

发布时间:2020-12-15 20:09:18 所属栏目:安全 来源:网络整理
导读:最近我写了一个脚本,设置一个环境变量,看看: #!/bin/bashecho "Pass a path:"read pathecho $pathdefaultPath=/home/$(whoami)/Desktopif [ -n "$path" ]; then export my_var=$pathelse echo "Path is empty! Exporting default path ..." export my_var
最近我写了一个脚本,设置一个环境变量,看看:
#!/bin/bash

echo "Pass a path:"
read path
echo $path

defaultPath=/home/$(whoami)/Desktop

if [ -n "$path" ]; then
    export my_var=$path
else
    echo "Path is empty! Exporting default path ..."
    export my_var=$defaultPath
fi

echo "Exported path: $my_var"

它的工作原理很大,但问题是my_var是本地可用,我的意思是在控制台窗口,我运行脚本。

如何编写一个脚本,它允许我导出全球环境变量,可以看到无处不在?

每个shell都有自己的环境。没有万能环境会奇迹般地出现在所有控制台窗口中。在一个shell中创建的环境变量无法在另一个shell中访问。

它甚至更限制。如果一个shell生成一个subshel??l,那个subshel??l可以访问父环境变量,但是如果subshel??l创建了一个环境变量,那么它在父shell中是不可访问的。

如果所有的shell都需要访问同一组变量,您可以创建一个启动文件,为您设置它们。这在BASH中通过$ HOME / .bash_profile和$ HOME / .bashrc文件以及$ HOME / .profile(如果$ HOME / .bash_profile不存在)完成。其他shell有自己的启动文件集。一个用于登录,一个用于在没有登录的情况下生成的shell。请参阅联机帮助页,了解使用哪些启动脚本以及它们的执行顺序。

你可以尝试使用共享内存,但我相信只有在进程正在运行时才能工作,所以即使你想出了一种设置一块共享内存的方法,它会在命令完成后立即消失。 (我很少使用共享内存,除了命名管道)。否则,真的没有办法在一个shell中设置环境变量,并有另一个shell自动拾取它。您可以尝试使用named pipes或将该环境变量写入文件以供其他shell使用。

想象一下,如果有人在我不知情的情况下改变一个shell的环境,可能会发生的问题。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读