Terminal

是unix-我克__−一世一世到和-like能夠確定其輸出去向的程序?

  • September 2, 2015

直到最近,我的印像是 Unix-y 程序不知道它們的輸出去了哪裡,無論是標準輸出、重定向到文件還是管道。然而,這個網站上一個不相關的 U&L 問題讓我注意到了以下範例:

% echo "hello world" > file

% grep --color=auto lo file
hello world

% grep --color=auto lo file | cat
hello world

顯然你在這裡看不到它,但第一個命令顯示 ’lo’ 突出顯示,正如預期的那樣。但是,通過管道的第二個呼叫沒有顯示顏色。這表明它grep知道其輸出被定向到管道並避免輸出顏色。這是怎麼做到的?

可以確定文件描述符是否引用 tty。

檢查功能_isatty

或者,您可以使用fstat功能為您提供有關文件的大量資訊。

是的,他們是。有幾種方法可以確定輸出的去向。如需比較,請參閱我對 stackoverflow 相關問題的回答

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