1、
ping xxx.xxx.xxx.xxx | while read line; do echo $line; echo $line >> file; donelinux
2、
Linux Shell 環境中的輸入輸出重定向,用符號<和>來表示。0、1和2分別表示標準輸入、標準輸出和標準錯誤。
1.重定向標準輸出到文件:
cat foo > foo.txt
2.重定向標準錯誤到文件
cat foo 2> foo.txt
3.重定向標準輸出到標準錯誤
cat foo 1>&2
4.重定向標準錯誤到標準輸出
cat foo 2>&1
5.重定向標準輸出,標準錯誤到同一個文件
cat foo > foo.txt 2>&1或cat foo &> foo.txt
這裏第個順序很重要,先把標準輸出重定向到文件,再把標準錯誤輸出到標準輸出,由於標準輸出已經重定向到文件,因此標準錯誤與重定向到文件。
>&與&>效果相同 shell
3、
linux數據怎麼同時雙定向到兩個不一樣文件?
ls | tee a.txt > b.txt
把ls的輸出重定向到a.txt和b.txt服務器
四/
Linux的重定向機制十分好用,咱們常常須要在服務器上掛起一個服務程序,而後將該程序的全部輸出重定向到某個文件,這樣即便咱們註銷了用戶,程序依然在linux服務器上運行着。調試
可是重定向的輸出常常沒法實時刷新到指定文件中,當咱們調試程序時,這將給咱們帶來巨大的困擾。其實只須要關閉重定向輸出的緩衝,便可實現實時刷新的效果。後臺
命令以下:file
unbuffer nohup command > file.out 2>&1 &程序
上面的unbuffer命令須要額外安裝expect-devel,用來實時刷新。command
nohup命令用來忽略全部掛斷(SIGHUP)信號,讓你的程序即便在用戶註銷後依然繼續運行。數據
command是任何一段你想要執行的shell命令。重定向
> file.out 表明將command運行結果重定向到當前目錄下的file.out文件中(若是要每次運行的結果追加到file.out後面,能夠用>>而不是>)。
2 >&1表示將標準錯誤輸出cerr的全部輸出也都重定向到標準輸出cout中,這樣file.out中就會記錄command命令運行過程當中全部標準輸出。
最後一個&表示後臺運行該command。