Stdout

輸出在控制台中,但不是 stdout 或 stderr 的一部分

  • January 5, 2016

我有一個輸出以下內容的命令:

READY
Listening....
HELLO
READY
Listening....
TEST

它是來自 的語音辨識pocketsphinx_continuous

我需要將輸出重定向到一個文件,它似乎不是來自stdout或者stderr因為我嘗試添加1>log.txt並且2>log.txt每次它們都是空白的。

**這是踢球者:**當我添加1>log.txt到命令時,控制台不再有任何輸出,但log.txt仍然是空白的。

另外,當我添加| tee log.txt它時,它不會顯示在控制台中,並且文件仍然是空白的。

此輸出是否來自stdout,如果是,為什麼它沒有被重定向到文件?

這個問題與我在這裡的另一個問題有關:將 Pocketsphinx_continuous 的輸出重定向到文件

Pocketsphinx 很奇怪,使用它的參數來重定向輸出對我來說是不可能的,在這個問題中,我只想知道這個輸出來自哪里sdtoutsdterr其他地方,以及如何重定向那個輸出。

編輯

ls -l /proc/PID/fd/返回:

lrwx------ 1 pi pi 64 Jan  4 04:12 0 -> /dev/pts/2
lrwx------ 1 pi pi 64 Jan  4 04:12 1 -> /dev/pts/2
lrwx------ 1 pi pi 64 Jan  4 04:11 2 -> /dev/pts/2
lrwx------ 1 pi pi 64 Jan  4 04:12 4 -> /dev/snd/pcmC0D0c

可怕的命令:

script -q -f -c "pocketsphinx_continuous -samprate 48000 -nfft 2048 -hmm /usr/local/share/pocketsphinx/model/en-us/en-us -lm 9745.lm -dict 9745.dic -inmic yes -logfn /dev/null" words.txt &

對我有用,它記錄:

READY....
Listening...
HELLO

到文件中,並且很容易清除不需要的東西。

編輯: 如果將來有人自己這樣做,&如果您在控制台中執行它,請刪除該命令末尾的,如果您通過 Python 或其他語言執行它,請保留&最後。

引用自:https://unix.stackexchange.com/questions/253101