当我这样做时
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内置的吗?这是怎么回事?
答案 0 :(得分:3)
你做对了。 “read”是一个内置的shell。进程名称仍为sh(或bash,或zsh,或其他任何你选择的shell)。
此外,虽然对于某些shell内置函数有二元替代品,但没有一个用于读取。实际上,由于它的语法,它接受一个shell变量的名称,该变量被赋予从stdin读取的结果。如果它是外部程序,它永远不能在调用shell中设置变量。