Ubuntu:运行另一个命令的输出

Lio*_*ana 15 bash command-line ubuntu

我有输出不同命令行的命令行,例如:

> commandlineA param1 param2
  commandlineB param1
Run Code Online (Sandbox Code Playgroud)

我想要一个单一的命令行执行,它将使用给定的参数运行 commandlineB。

有没有什么简单的方法可以使用单个命令行来做到这一点,或者我是否需要运行一个小的 bash 文件来将输出存储在一个变量中然后运行它?

谢谢

Chr*_*ock 19

您似乎已经自己解决了这个问题,但您可以使用:

$(command parameter1 parameter2)
Run Code Online (Sandbox Code Playgroud)

编辑编辑:下面有点错误,虽然它确实在子shell中运行命令,但事实证明环境变量仍然可用。抱歉误导了大家...

编辑:将在子shell中运行,不会使用任何未导出的环境变量。如果要在同一个 shell 中运行命令,则需要使用:

eval $(command parameter1 parameter2)
Run Code Online (Sandbox Code Playgroud)

给出的另一个答案是通过 bash 本身进行管道传输:

echo 'uname -a' | bash 
Run Code Online (Sandbox Code Playgroud)

这也将在子shell中执行,要在您需要的同一个shell中运行:

echo 'uname -a' | bash -c
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您也可以使用反引号代替 $() 语法,但不推荐使用