Shell-Script

如何將 Portage 的輸出寫入 txt 文件?

  • November 3, 2015

我希望能夠編寫 Portage 命令的輸出以及我在 tty 中執行的其他命令(即,螢幕範圍的終端以Ctrl+ Alt+開頭,其中 n 表示 1 到 6 之間的整數。這些終端是開始使用命令,據我所知)在沒有剪貼板的地方,到文本文件。現在我在Ubuntu 論壇上讀到,如果使用得當,也許 Unix 命令可以做到這一點。不幸的是,按照建議的命令似乎沒有將命令的完整輸出添加到文本文件中。看到我跑了:F*n*``getty``cat``emerge

emerge dev-qt/qtwayland > cat >> /home/fusion809/output.txt

其中 fusion809 是我的使用者名,它只在 output.txt 中寫入了四行輸出,即:

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。

你在正確的軌道上。在 Unix/Linux 中還有一個錯誤流。每個命令都有標準輸入、標準輸出和標準錯誤。

您一直在使用標準輸出。要從命令中擷取標準錯誤流,請使用2>. 例如:

emerge dev-qt/qtwayland > emerge.out 2> emerge.err

現在,如果您希望標準輸出錯誤進入同一個文件,請使用2>&1告訴 shell 將標準錯誤輸出發送到與標準輸出相同的位置:

emerge dev-qt/qtwayland > emerge.out 2>&1

此外,如果您需要參考和了解更多資訊,您可以隨時在 shell 手冊頁中查找man sh

感謝您提供的資訊豐富且經過深思熟慮的問題!

引用自:https://unix.stackexchange.com/questions/240476