如何使以下代码正常工作?我想将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'
谢谢
答案 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