我正在动态构建一个Bash命令。这很好用:
COMMAND="java myclass"
${COMMAND}
现在我想动态构建一个命令,将输出重定向:
LOG=">> myfile.log 2>&1"
COMMAND="java myclass $LOG"
${COMMAND}
该命令仍会调用java进程,但输出不会重定向到myfile.log文件。
此外,如果我执行:
BACKGROUND="&"
COMMAND="java myclass $BACKGROUND"
${COMMAND}
该命令未在后台运行。
有什么线索可以让日志重定向和后台运行正常工作吗?(bash -x 显示所构建的命令符合预期)
(实际上,与此示例不同,LOG和BACKGROUND的值是动态设置的)
eval
可能会出错。 - Aaron Digulla