2

当我做

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 吗?这里发生了什么事 ?

4

1 回答 1

3

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

此外,尽管对于某些 shell 内置程序有二进制替代方案,但没有可供读取的替代方案。真的因为它的语法,它接受了一个 shell 变量的名称,该变量被分配了从标准输入读取的结果。如果它是一个外部程序,它永远无法在调用 shell 中设置变量。

于 2011-06-18T20:41:58.403 回答