我正在使用以下lsof
命令:
lsof -iTCP -a -sTCP:^LISTEN -a -p <pid>
如果有一些输出,则此命令返回退出代码0
但如果没有输出则退出代码为1
。
echo $?
任何人都可以解释为什么会这样吗?有没有办法避免它?
答案 0 :(得分:3)
这是预期的行为:如果找到了某些内容,您只需0
。
来自man lsof
:
<强>诊断强>
错误标识为标准错误文件中的消息。
如果检测到任何错误,Lsof返回一(1),包括 无法找到命令名称,文件名,Internet地址 或者询问文件,登录名,NFS文件,PID,PGID或UID 列出。如果指定了-V选项,则lsof将指示搜索 它未能列出的项目。
如果未检测到错误,并且能够列出有关所有指定搜索参数的信息,则返回零(0)。