5

我正在使用以下lsof命令:

lsof -iTCP -a -sTCP:^LISTEN -a -p <pid>

如果有一些输出,则此命令返回退出代码,0但如果没有输出,则退出代码为1

echo $?

谁能解释为什么会这样?有没有办法避免它?

4

1 回答 1

6

这是预期的行为:0如果发现了什么,你就会得到。

来自man lsof

诊断

错误由标准错误文件上的消息标识。

如果检测到任何错误,包括未能找到命令名称、文件名、Internet 地址或文件、登录名、NFS 文件、PID、PGID 或要求列出的 UID,Lsof 将返回一 (1)。如果指定了 -V 选项,lsof 将指示它未能列出的搜索项。

如果未检测到错误并且能够列出有关所有指定搜索参数的一些信息,则返回零 (0)。

于 2015-04-24T09:04:32.050 回答