1行でコマンド出力を印刷して使用する方法は?

1行でコマンド出力を印刷して使用する方法は?

mktemp結果をコマンドの引数として渡したいと思いますgcc -ogcc -o $(mktemp)結果は結果を使用しますが、結果を把握する必要があります。

私が考えることができる唯一のことですが、gcc -o $(out=$(mktemp); echo $out)これはコンソールに値を印刷せず、代わりに私が知っている限り正しいパラメータ値として使用されます。

mktemp結果をコンソールに印刷する方法はありますか?

私はスクリプトでこの問題を解決する能力があります。あなたが提案したい一行のソリューションで私の知識を広げたいと思います。

bashUbuntu 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ランダムな名前生成の美しさを見るために出力のパスだけを見たくないでしょう。

関連情報