ターミナルから最後に実行したコマンドの出力を保存するにはどうすればよいですか?

ターミナルから最後に実行したコマンドの出力を保存するにはどうすればよいですか?

私のプロジェクトには、クリーン ビルドを実行すると何かを出力し、増分ビルドを実行すると別の何か (より少ない) を出力させる増分ビルド コマンドがあります。

すでにクリーン ビルドを実行しmycommand.sh、出力がターミナル ウィンドウに印刷されている場合 (コピー アンド ペーストを使用せずに)、これを保存するにはどうすればよいですか?

忘れてた

mycommand.sh > myfile.txt

または

mycommand.sh >> myfile.txt

出力をファイルに保存します。

答え1

または、前のコマンドを再実行すること$(!!)は解決策のように見えるかもしれませんが(時には解決策になることもあります)、欠点もあります。完全に使用して理解します。

例: コマンドが次のような変更を行った場合

rm -rv /tmp/*

そうすれば、そのコマンドを何らかの方法で再実行してもない最初の実行前に /tmp/ が空で、2 回目もまだ空である場合は、出力は同じになるという点を除いて、以前と同じ出力が生成されます。

結論:安全コマンドの実行中に出力を保存しなかった場合、最後のコマンドの出力を再利用または保存 (コピー & 貼り付けなし) する方法。

答え2

bash はメモリ上のどのパラメータやブロックにも出力を割り当てないので、これはできません。

$(!!)ただし、再計算する最後のコマンドの出力を(再利用しないで)保存します。

!!単独で最後のコマンドを実行します。

$ echo pierre
pierre
$ echo my name is $(!!)
echo my name is $(echo pierre)
my name is pierre

ソース:Bash の最後のコマンドの出力を再利用する

関連情報