Shell-Script
如何將 Portage 的輸出寫入 txt 文件?
我希望能夠編寫 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
。感謝您提供的資訊豐富且經過深思熟慮的問題!