当我进行时
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中设置变量。