lsof没有为内置读取的bash提供o / p

时间:2011-06-18 20:33:17

标签: linux bash file-descriptor lsof

当我这样做时

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内置的吗?这是怎么回事?

1 个答案:

答案 0 :(得分:3)

你做对了。 “read”是一个内置的shell。进程名称仍为sh(或bash,或zsh,或其他任何你选择的shell)。

此外,虽然对于某些shell内置函数有二元替代品,但没有一个用于读取。实际上,由于它的语法,它接受一个shell变量的名称,该变量被赋予从stdin读取的结果。如果它是外部程序,它永远不能在调用shell中设置变量。