2011-06-18 18 views
2

當我在終端上做lsof的不給內置在鄰/對於bash p個讀

find/

,然後執行關於另一終端

lsof -a -d 0-2 -c fin 

我看到從lsof的執行列出O/P命令。

但是,當我在同一個終端上做

echo hi ; read -t 30 hello 
hi 

(如查找),做(不同的終端上)

lsof -a -d 0-2 -c read 

我不從lsof的命令得到任何輸出

爲什麼?是因爲閱讀是內置的bash嗎?這裏發生了什麼事 ?

+0

這個問題技術上屬於[unix和linux](http://unix.stackexchange.com/) –

回答

3

你說得對。 「讀」是一個內置的shell。進程名仍然是sh(或bash,或zsh,或其他任何你選擇的shell)。

此外,儘管對於某些shell內置插件,還有二進制替代方法,但沒有一個用於讀取。真的,因爲它的語法,它需要一個shell變量的名稱,從中分配讀取stdin的結果。如果它是一個外部程序,它不能在調用shell中設置變量。

+0

該變量是$ REPLY,對吧?來自bash的'help read'的 – abc

+0

:如果未提供NAME,則讀取的行會存儲在REPLY變量中。 –