如何在一行中打印和使用命令输出?

Kar*_*ter 10 command-line bash subshell

我想将mktempas 参数的结果传递给命令,比方说gcc -ogcc -o $(mktemp)导致使用结果,但我需要弄清楚结果。

我唯一能想到的是gcc -o $(out=$(mktemp); echo $out),但这不会将值打印到控制台,而是用作参数值,这是正确的 afaik。

有什么办法可以得到mktemp打印到控制台的结果。

我有能力在脚本中解决这个问题。我想通过您希望提出的单行解决方案来拓宽我的知识。

我想bash在 Ubuntu 19.04 上使用它。

ste*_*ver 18

如何tee使用/dev/tty

$ gcc -o $(mktemp | tee /dev/tty) hello.c
/tmp/tmp.UBSSnulNn2

$ /tmp/tmp.UBSSnulNn2
Hello, world!
Run Code Online (Sandbox Code Playgroud)

有关的:


mur*_*uru 8

在 中切换gcc -o $(out=$(mktemp); echo $out)

out=$(mktemp); echo "$out"; gcc -o "$out" hello.c
Run Code Online (Sandbox Code Playgroud)

...这也方便地将路径留在变量中供以后使用。(大概您不想只看到输出中的路径来欣赏mktemp随机名称生成的美感,对吗?您希望该路径在其他地方使用它。)