当进程不存在时不产生输出

tsh*_*ang 1 ps

如果以下命令tail未运行,则不产生任何输出,我会很高兴:

ps --no-headers $(pidof tail)
Run Code Online (Sandbox Code Playgroud)

相反,我得到:

  964 pts/2    00:00:01 bash
 4393 pts/2    00:00:00 ps
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 5

如果您的版本ps支持该-C选项:

ps --no-headers -C tail
Run Code Online (Sandbox Code Playgroud)

如果没有,则ps只有pidof成功才能运行:

pid=$(pidof tail) && ps --no-headers ${pid}
Run Code Online (Sandbox Code Playgroud)

或(对于 Zsh):

pid=$(pidof tail) && ps --no-headers $=pid
Run Code Online (Sandbox Code Playgroud)

(感谢吉尔斯!)。