bash 文本处理和错误信息

bash 文本处理和错误信息

例如我有这个脚本可以杀死 Firefox

ps x | grep firefox | grep -v grep | awk '{print $1}'| xargs kill -9

但当没有运行 Firefox 时,它会吐出:

Usage:
  kill pid ...              Send SIGTERM to every process listed.
  kill signal pid ...       Send a signal to every process listed.
  kill -s signal pid ...    Send a signal to every process listed.
  kill -l                   List all signal names.
  kill -L                   List all signal names in a nice table.
  kill -l signal            Convert between signal numbers and names.

显示错误消息的最简单的方法是什么?

答案1

您用于检测 Firefox 进程的命令很糟糕,它还包括命令行中带有“firefox”的进程(例如目录名)。请改用pidof firefox

您可以先保存 PID,检查它是否为(非)空并调整行为:

pids=$(pidof firefox)
if [ -n "$pids" ]; then
    kill -9 $pids
else
    echo "No Firefox processes found"
fi

或者,killall如果您不需要错误消息,请使用:

killall firefox

相关内容