Stdout
輸出在控制台中,但不是 stdout 或 stderr 的一部分
我有一個輸出以下內容的命令:
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 很奇怪,使用它的參數來重定向輸出對我來說是不可能的,在這個問題中,我只想知道這個輸出來自哪里
sdtout
或sdterr
其他地方,以及如何重定向那個輸出。編輯
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 或其他語言執行它,請保留&
最後。