
Ctrl私は他のコマンド(つまり、++で始まる画面全体の端末)だけでなく、ttyで実行されるPortageコマンドの出力を作成できるようにしたいと思います。Altここで、nは1から6の間の整数を表します。この端末はコマンドを使用して開始されます。私が知っている限り)をクリップボードなしでテキストファイルに変換します。今私は読むFngetty
UbuntuフォーラムおそらくUnixコマンドを正しく使用している場合は、cat
これを行うことができます。残念ながら、提案されたコマンドによると、emerge
コマンドの出力全体がテキストファイルに追加されないようです。私が逃げるのを見てください:
emerge dev-qt/qtwayland > cat >> /home/fusion809/output.txt
fusion809が私のユーザー名の場合、output.txtに次の4行の出力のみを書き込みます。
Calculating dependencies ....... .. ....... done!
[ebuild R ] media-libs/mesa-11.0.4 USE="-wayland*" ABI_X86="32*"
[ebuild R ] dev-qt/qtgui-5.5.1 USE="-egl* -evdev* -ibus*"
[ebuild R ] dev-qt/qtwayland-5.5.1 USE="-egl*"
私も次のことを試しました。
emerge dev-qt/qtwayland > /home/fusion809/output.txt
そして:
emerge dev-qt/qtwayland >> /home/fusion809/output.txt
どちらも同じ出力をoutput.txtに書き込みます。
答え1
あなたは正しい道を行っています。 Unix / Linuxにもエラーストリームがあります。すべてのコマンドには標準入力、標準出力、標準エラーがあります。
標準出力を使用しています。コマンドから標準エラー・ストリームもキャプチャーするには、2>
次のようにします。
emerge dev-qt/qtwayland > emerge.out 2> emerge.err
今標準出力が必要な場合そしてエラーを入力してください同じ2>&1
標準エラー出力を標準出力と同じ場所に送信するようにシェルに指示するファイル:
emerge dev-qt/qtwayland > emerge.out 2>&1
また、参照や追加情報が必要な場合は、いつでもシェルのマニュアルページで参照できますman sh
。
有益で深く考えた質問に感謝します!
答え2
あなたはそこにいる必要はありません
> cat
。実際、これはcat
現在のディレクトリに呼び出される別のファイルを生成することです。 inputが必要な場合は| cat
冗長なので、catを介してパイピングせずに出力をリダイレクトできます。emerge dev-qt/qtwayland > /home/fusion809/output.txt
節約するみんなコマンドのstdout出力は.allemerge
に移動します/home/fusion809/output.txt
。ファイルに4行しかない場合、emerge
stdoutには4行だけが印刷されるためです。今後は、より多くのコンテンツを印刷した可能性があります
stderr
。この内容も確認したい場合は試してみてくださいemerge dev-qt/qtwayland >& /home/fusion809/output.txt
。これにより、stdoutとstderrが同じファイルにリダイレクトされます。>
との違いは、>>
ファイル>
が存在する場合は作成する前に削除され、>>
ファイルがすでに存在する場合はファイルに追加され、存在しない場合は作成されることです(シェルオプションによって異なります)。出力をファイルとしてキャプチャする場合そして同時に画面で表示するにはを使用します
tee
。たとえば、次のようになります。
emerge dev-qt/qtwayland |& tee -a /home/fusion809/output.txt
tee
オプション-a
は、消去して上書きするのではなく追加するように指示します。