当我做
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命令获得任何输出
为什么呢是因为read是内置的bash吗?这里发生了什么事 ?
最佳答案
你答对了。 “read”是内置的shell。进程名称仍为sh(或bash或zsh,或您选择的其他shell)。
而且,尽管对于某些内置的shell,有一些二进制替代方案,但没有可供读取的方案。确实由于它的语法,它采用了一个shell变量的名称,该变量被分配了从stdin读取的结果。如果它是一个外部程序,则永远无法在调用 shell 程序中设置变量。
关于linux - lsof没有为内置的bash提供o/p,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6398726/