日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

标准输入输出重定向

發(fā)布時(shí)間:2023/12/10 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 标准输入输出重定向 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

程序會(huì)在運(yùn)行中輸出日志,并是通過java的日志類進(jìn)行輸出的。而如果關(guān)掉SSH運(yùn)行程序,就會(huì)丟失這些信息。直觀的解決辦法是將輸出到控制臺(tái)的日志重定向到文件中,于是我將命令改為:sh auto.sh > console.txt &。不過事實(shí)并沒像我想的那樣,console.txt雖然被創(chuàng)建了,而日志并沒有寫在其中。后來請(qǐng)教Robert Chen,他讓我用sh auto.sh >console.txt 2>&1 & 命令試一下,我輸入了這個(gè)隱晦的命令之后,原本輸出到控制臺(tái)的日志內(nèi)容終于被重定向到console.txt了。

下面來詳細(xì)分析一下這條命令:

sh auto.sh 運(yùn)行shell腳本

>console.txt 將標(biāo)準(zhǔn)輸出重定向到console.txt文件中

其實(shí)操作系統(tǒng)有三個(gè)常用的流:

0:標(biāo)準(zhǔn)輸入流 stdin

1:標(biāo)準(zhǔn)輸出流 stdout

2:標(biāo)準(zhǔn)錯(cuò)誤流 stderr

一般當(dāng)我們用 > console.txt,實(shí)際是 1>console.txt的省略用法;< console.txt ,實(shí)際是 0 < console.txt的省略用法。

java的日志類默認(rèn)是輸出到system.err中,所以要想將日志內(nèi)容重定向到console.txt,需要將stderr重定向到console.txt.

將stderr重定向到console.txt的命令是 2 < console.txt。

不過有個(gè)問題,stdout是有緩沖的,而stderr是沒有緩沖的,原因很簡單,stderr一般是系統(tǒng)發(fā)生錯(cuò)誤,比如編譯一個(gè)程序出錯(cuò),需要立即給出編譯錯(cuò)誤提示。

所以如果寫成 sh auto.sh > console.txt 2 > console.txt就會(huì)出現(xiàn)問題。

再來看看 >& 操作符:

重定向操作符描述

>

將命令輸出寫入到文件或設(shè)備(如打印機(jī)),而不是命令提示符窗口或句柄。

<

從文件而不是從鍵盤或句柄讀入命令輸入。

>>

將命令輸出添加到文件末尾而不刪除文件中已有的信息。

>&

將一個(gè)句柄的輸出寫入到另一個(gè)句柄的輸入中。

<&

從一個(gè)句柄讀取輸入并將其寫入到另一個(gè)句柄輸出中。

|

從一個(gè)命令中讀取輸出并將其寫入另一個(gè)命令的輸入中。也稱作管道。

而句柄的定義就是:

句柄句柄的數(shù)字代號(hào)描述

STDIN

0

鍵盤輸入

STDOUT

1

輸出到命令提示符窗口

STDERR

2

錯(cuò)誤輸出到命令提示符窗口

UNDEFINED

3-9

句柄由應(yīng)用程序單獨(dú)定義,它們是各個(gè)工具特有的

所以 2 >& 1就是把 stderr重定向到stdout 由于stdout被重定向到 console.txt,所以最終stderr,stdout均被重定向到console.txt并且解決了兩者緩沖區(qū)不一致的問題。

java?Test>test.txt?2>&1

轉(zhuǎn)載:http://www.cnblogs.com/coolgestar02/archive/2011/01/04/1925590.html

轉(zhuǎn)載于:https://www.cnblogs.com/gaol/p/4666714.html

總結(jié)

以上是生活随笔為你收集整理的标准输入输出重定向的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。