bash - 在 bash 中动态构建命令

标签 bash scripting

我正在 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 命令来完成:

eval ${COMMAND}

关于bash - 在 bash 中动态构建命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1715591/

相关文章:

Bash、ffmpeg 和管道思考

linux - 找不到 bash 脚本命令 - 命令已正确执行

Bash 脚本 "Usage"输出格式

powershell - 如何开始使用 PowerShell?

vba - 如何在PowerPoint 2010中确定音频文件的路径和可用性

linux - unix - 自动确定字段分隔符和记录(EOL)分隔符?

linux - 当操作系统等待用户输入时,CPU 是否仍在执行任何指令?

linux - 来自不同目录的多个文件作为 awk 的输入

string - 在第 n 个参数之后获取所有参数并在 bash 中将它们连接在一起

bash - 嵌套 if/else 的 zsh 脚本解析器错误