Cat
“cat”和“less”之間的標準輸入行為
當我發出
cat
時,終端掛起等待標準輸入。但是,當less
發佈時,我得到Missing filename ("less --help" for help)
. 眾所周知,兩者都less
接受cat
標準輸入。有什麼不同?這如何反映在手冊頁中?
less
當沒有給出任何文件名參數時執行以下程式碼:if (isatty(fd0)) { error("Missing filename (\"less --help\" for help)", NULL_PARG); quit(QUIT_OK); } return (edit("-"));
當標準輸入是終端時,它會抱怨。如果標準輸入是一個普通的文件或管道,就可以了。
它可能這樣做是因為它需要在每頁末尾讀取來自終端的響應,並且無法區分正在分頁的數據和響應。
手冊頁中沒有提到這一點。也許應該是。
cat
不分頁其輸出,也不讀取來自終端的響應。就 stdin 作為終端而言,它沒有任何限制。