只是爲了好玩,我想將終端中的所有輸出文本管到espeak
。例如,在設置完成後,我應該能夠輸入echo hi
,並聽到「hi」說話,或者ls
,並聽取我列出的目錄內容。鉤住bash中的所有命令輸出
唯一有前途的方法來捕獲輸出到目前爲止,我發現就是從這裏開始:http://www.linuxjournal.com/content/bash-redirections-using-exec
這是我到目前爲止有:
npipe=/tmp/$$.tmp
mknod $npipe p
tee /dev/tty <$npipe | espeak &
espeakpid=$!
exec 1>&-
exec 1>$npipe
trap "rm -f $npipe; kill $espeakpid" EXIT
它的工作原理(也打印了一堆「完成「工作),但創建命名管道,刪除陷阱和打印輸出tee
都顯得有點混亂。有一種更簡單的方法嗎?
只有掛鉤所有命令輸出很容易與'exec>>(tee bash.log)'。但是正確處理終端,IPC(無需填寫文件)等。以上是正確的方法。 – jm666
@ jm666謝謝,有沒有辦法用管道而不是文件重定向? – jozxyqk