Linux
無法從某些命令將輸出重定向到文件
我正在嘗試將輸出(錯誤或成功)寫入文件。使用其他命令,我可以毫無問題地執行此操作,但是以下命令只會寫入終端而不寫入文件。如果我直接在終端中執行,我可以在螢幕上看到輸出,並且文件將被創建但將為空。
命令是
sudo ip r add default via 192.168.1.254 > outfile.txt >&1 sudo ip r add default via 192.168.1.254 | tee -a outfile.txt sudo /sbin/route add default gw 192.168.1.254 | sudo tee -a outfile.txt
這些將進入啟動腳本(無頭設置)。我無法直接從終端內模擬啟動條件,因此僅直接執行它們並不一定會給我在啟動條件下發生的輸出,這意味著我無法弄清楚導致它們失敗的原因/是什麼。
我直接在終端中執行時的輸出是
RTNETLINK answers: Network is unreachable
forsudo ip r add default via 192.168.1.254
並且在這些條件下是預期SIOCADDRT: Network is unreachable
的sudo route add default gw 192.168.1.254
對於 bash
ip r add default via 192.168.1.254 &> outfile.txt
或其他外殼的標準形式:
ip r add default via 192.168.1.254 >outfile.txt 2>&1
來自
man bash
:Redirecting Standard Output and Standard Error This construct allows both the standard output (file descriptor 1) and the standard error output (file descriptor 2) to be redirected to the file whose name is the expansion of word. There are two formats for redirecting standard output and standard er‐ ror: &>word and >&word Of the two forms, the first is preferred. This is semantically equiva‐ lent to >word 2>&1