Redirect stderr - Linux

Zora avatar
By Zora
at 2012-07-23T11:18

Table of Contents

dir=$(mktemp -p "${TMPDIR:-.}" -d dir-XXXX) || exit 1
fifo=$dir/fifo
mkfifo "$fifo"
pid=$$
echo $pid > $dir/pid
dd if=$fifo bs=1 | tee /proc/$pid/fd/1 >$dir/logfile&
#dd if=$fifo bs=1 | tee /proc/$pid/fd/1& >$dir/logfile&
#原文上面多了一個&
#送回stderr的process
exec 2>$fifo
#這一行會吧stderr會送出去
#可是bash的回應(像是PS1)也是走stderr,所以要有別的process把他送回來

接下來就看你回不要把bash的回應除掉囉
要不然還有一個方法:用readline的inputrc,
"\r":" "2>/logfile\C-o"
可是會把行的內容留在下一次的prompt
我不知到inputrc有沒有像vi一樣的noremap
至少"\r":"xxxx\r"是無窮迴圈

--
Tags: Linux

All Comments

Olga avatar
By Olga
at 2012-07-25T03:11
再次謝謝K大的指教:)
Mia avatar
By Mia
at 2012-07-29T19:29
再請教K大一下,請問您寫的內容要如何使用呢?
Olga avatar
By Olga
at 2012-07-30T02:38
是line by line輸入嗎?還是將內容儲存成.sh檔案?
Donna avatar
By Donna
at 2012-07-31T07:19
我資質駑鈍,目前還無法理解您所寫的內容以及如何使用
George avatar
By George
at 2012-08-01T03:34
昨天犯了一個超冏的錯誤,把測試用的bind範列直接寫在
Valerie avatar
By Valerie
at 2012-08-05T04:17
.bashrc檔案裡面,搞我每次一輸入指令就會出現無效指
Quanna avatar
By Quanna
at 2012-08-08T22:09
令的情況,而且也無法開啟.bashrc的內容了冏rz
Margaret avatar
By Margaret
at 2012-08-12T13:12
用別的user登進去吧...

雙系統時間調整

Charlotte avatar
By Charlotte
at 2012-07-23T01:32
一開始裝fedora的時候時區點錯了點到歐洲去 後來裝好了又把它改回來台北,然後調時間 但是這樣做回到windows的時候整個時間又變了,所以我又要調 然後再回來fedora時間又差了好幾個小時… 所以就改回去之後直到另一個系統後又要改回來,一直重複,挺麻煩的 我是直接裝硬碟上,不是VM之類的 有 ...

有辦法讓Wine正常執行HackShield嗎

Susan avatar
By Susan
at 2012-07-22T21:53
嗯...有人知道要怎麼讓Wine跑遊戲時不去執行Hackshield(或是正常執行)嗎?? Hackshield害的我Mabinogi在Linux Mint 13 下跑不起來 Wine Ver:Wine 1.4-ubuntu3 Host OS ; Linux Mint 13 MATE -64bit - ...

CentOS的ISO檔不能直接下載啊?

Anthony avatar
By Anthony
at 2012-07-22T19:52
目前6.3已經出來了,但我上FTP只看到bin可以直接下載,像是LiveDVD就 只能用BT,請問這是正常現象嗎?我目前環境無法用BT,找不到來源可以抓。 之前版本也是liveDVD會比較晚放嗎? -- 起初,他們追殺共產主義者,我沒有說話,因為我不是共產主義者; 接著,他們追殺猶太人,我沒有說話,因為我不 ...

Redirect stderr

Wallis avatar
By Wallis
at 2012-07-22T14:52
※ 引述《ALTandTAB (30)》之銘言: : 你是想stdoutandamp;stderr -andgt; screen 且 stderr -andgt; file 嗎? 是的 : 如果我沒搞錯的話應該可以用下面的script完成 : str=and#34;$atand#34;; ${str#$1 ...

Redirect stderr

Carol avatar
By Carol
at 2012-07-22T13:30
你是想stdoutandamp;stderr -andgt; screen 且 stderr -andgt; file 嗎? 如果我沒搞錯的話應該可以用下面的script完成 str=and#34;$atand#34;; ${str#$1} 3andgt;andamp;1 1andgt;andamp; ...