代码之家  ›  专栏  ›  技术社区  ›  Jason K

脚本中的Bash导出;下一个剧本[[副本]

  •  0
  • Jason K  · 技术社区  · 7 年前

    这就是我所拥有的:

    #!/bin/bash
    
    myExports="TEST='Value 1';export TEST;";
    
    echo Before eval: $TEST
    echo '***'
    
    eval $myExports
    
    echo After eval: $TEST
    echo '***'
    

    我是这么称呼它的:

    ./env1.sh ;echo Next command:$TEST
    

    这是输出:

    Before eval:
    ***
    After eval: Value 1
    ***
    Next command:
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Jason    7 年前

    source 你的剧本就像。。。

     #source ./env1.sh; echo Next command:$TEST
     . ./env1.sh; echo Next command:$TEST
    

    正如@Jonathon在使用 . 代替 来源

    事实上,如果您使用这个方法,您甚至不需要导出变量。

    做这件事的时候要小心你的变量名。即使这是你想要的,你也在污染你的环境。

    eval

    #!/bin/bash
    
    #myExports="TEST='Value 1';export TEST;";
    
    echo Before eval: $TEST
    echo '***'
    
    TEST='Value 1'; export TEST
    #eval $myExports
    
    echo After eval: $TEST
    echo '***'
    
    推荐文章