在shell脚本中连接命令字符串

Bri*_*ian 2 bash shell scripting

我正在维护一个现有的shell脚本,它将命令分配给shell脚本中的变量,如:

MY_COMMAND="/bin/command -dosomething"
Run Code Online (Sandbox Code Playgroud)

然后通过执行以下操作,它将"参数"传递给$ MY_COMMAND:

MY_ARGUMENT="fubar"

$MY_COMMAND $MY_ARGUMENT
Run Code Online (Sandbox Code Playgroud)

这个想法$MY_COMMAND应该与$MY_ARGUMENT附加执行.

现在,我不是shell脚本的专家,但从我所知道的,$MY_COMMAND$MY_ARGUMENT作为参数执行.但是,如果我这样做:

MY_ARGUMENT="itworks"
MY_COMMAND="/bin/command -dosomething $MY_ARGUMENT"
Run Code Online (Sandbox Code Playgroud)

它工作得很好.

它是否是有效的语法调用,$MY_COMMAND $MY_ARGUMENT因此它在shell脚本中执行shell命令MY_ARGUMENT作为参数?

kon*_*box 5

使用Bash,您可以使用数组:

MY_COMMAND=("/bin/command" "-dosomething")  ## Quoting is not necessary sometimes. Just a demo.
MY_ARGUMENTS=("fubar")  ## You can add more.

"${MY_COMMAND[@]}" "${MY_ARGUMENTS[@]}"  ## Execute.
Run Code Online (Sandbox Code Playgroud)