【问题标题】:How to check environment variable in a linux subshell?如何在 linux subshel​​l 中检查环境变量?
【发布时间】:2018-10-05 22:03:09
【问题描述】:

我有一个配置文件,我可以 $source 并检查其中的变量值。但是,我不想污染我当前的 shell 环境,同时仍然想检查变量的值。

有什么建议吗?

【问题讨论】:

    标签: linux shell


    【解决方案1】:

    只需启动第二个 shell。

    [root@feaf38f55954 ~]# cat envars
    export BOOGER='yuck'
    [root@feaf38f55954 ~]# env | grep BOOGER
    [root@feaf38f55954 ~]# bash
    [root@feaf38f55954 ~]# source envars
    [root@feaf38f55954 ~]# env | grep BOOGER
    BOOGER=yuck
    [root@feaf38f55954 ~]# exit
    exit
    [root@feaf38f55954 ~]# env | grep BOOGER
    [root@feaf38f55954 ~]#
    

    【讨论】:

    • 您也可以使用(. envars && env | grep BOOGER) 内联它,其中子shell 由(...) 创建。
    • 我无法启动第二个 shell,因为我的程序正在执行一个需要检查配置文件的 shell 脚本。我不是以交互方式进行的。
    • @drdot 如果您使用命令替换,它会在子 shell 中运行,所以您可以这样做 var=$(source envvar; env | grep BOOGER)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多