我想将结果mktemp
作为参数传递给命令,比方说gcc -o
。gcc -o $(mktemp)
导致使用结果,但我需要弄清楚结果。
我唯一能想到的是gcc -o $(out=$(mktemp); echo $out)
,但这不会将值打印到控制台,而是用作参数值,据我所知,这是正确的。
有什么办法可以将结果mktemp
打印到控制台。
我有能力在脚本中解决这个问题。我想通过您希望提出的单行解决方案来拓宽我的知识。
我想在bash
Ubuntu 19.04 上使用它。
答案1
tee
与怎么样/dev/tty
?
$ gcc -o $(mktemp | tee /dev/tty) hello.c
/tmp/tmp.UBSSnulNn2
$ /tmp/tmp.UBSSnulNn2
Hello, world!
有关的:
答案2
切换事物gcc -o $(out=$(mktemp); echo $out)
:
out=$(mktemp); echo "$out"; gcc -o "$out" hello.c
...这也方便地将路径保留在变量中以供以后使用。 (想必您不想只看到输出中的路径来欣赏mktemp
随机名称生成的美丽,对吧?您希望该路径在其他地方使用它。)