作者kdjf (我抓得到什麼呢?)
看板Linux
標題Re: [問題] Redirect stderr
時間Mon Jul 23 11:18:51 2012
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"是無窮迴圈
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.245.32
推 JUSTLOVEAYU:再次謝謝K大的指教:) 07/23 14:26
→ JUSTLOVEAYU:再請教K大一下,請問您寫的內容要如何使用呢? 07/23 14:38
→ JUSTLOVEAYU:是line by line輸入嗎?還是將內容儲存成.sh檔案? 07/23 14:39
→ JUSTLOVEAYU:我資質駑鈍,目前還無法理解您所寫的內容以及如何使用 07/23 14:40
→ JUSTLOVEAYU:昨天犯了一個超冏的錯誤,把測試用的bind範列直接寫在 07/23 14:41
→ JUSTLOVEAYU:.bashrc檔案裡面,搞我每次一輸入指令就會出現無效指 07/23 14:42
→ JUSTLOVEAYU:令的情況,而且也無法開啟.bashrc的內容了冏rz 07/23 14:43
→ kdjf:用別的user登進去吧... 07/23 23:00