當我在終端上做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嗎?這裏發生了什麼事 ?
當我在終端上做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嗎?這裏發生了什麼事 ?
你說得對。 「讀」是一個內置的shell。進程名仍然是sh(或bash,或zsh,或其他任何你選擇的shell)。
此外,儘管對於某些shell內置插件,還有二進制替代方法,但沒有一個用於讀取。真的,因爲它的語法,它需要一個shell變量的名稱,從中分配讀取stdin的結果。如果它是一個外部程序,它不能在調用shell中設置變量。
該變量是$ REPLY,對吧?來自bash的'help read'的 – abc
:如果未提供NAME,則讀取的行會存儲在REPLY變量中。 –
這個問題技術上屬於[unix和linux](http://unix.stackexchange.com/) –