将自定义环境变量传递给nohup

时间:2018-06-29 04:55:42

标签: bash environment-variables nohup

如何使以下代码正常工作?我想将custom_var的值传递给command脚本。

$ command="echo $custom_var"
$ custom_var=myValue nohup $command > log.txt && cat log.txt 
$ # WRONG. Should be 'myValue'

This似乎无效。上面的输出应打印“ myValue”。还尝试过:

$ command="echo \$custom_var"
$ custom_var=myValue nohup $command > log.txt && cat log.txt 
$ $custom_var # WRONG. Should be 'myValue'

谢谢

1 个答案:

答案 0 :(得分:0)

您犯了两个错误。第一个是这种语法

server.Given(Request.Create().WithPath("/exampleIko"))
    .RespondWith(Response.Create().WithCallback(req =>
    {
        return new ResponseMessage
        {
            Body = "<xml>" + req.Body.Substring(10) +"</xml>"
        };
    }));

创建仅对var=val some_command 可见的临时导出变量。该语句完成后将不存在。因此,您以后使用some_command时将具有该语句运行之前的任何值(如果有)。

第二个错误是您不了解POSIX 1003 shell如何进行变量扩展,也不了解env vars与非env vars有何不同。 custom_var被传递到“ custom_var脚本”。问题是您试图验证是否需要父外壳(在其中运行这些命令的外壳)进行变量扩展。试试这个吧。创建具有以下内容的名为 / tmp / cvar 的文件:

command

然后输入

echo custom_var is $custom_var
env | grep custom_var