Bash 脚本通过 PID 终止进程



我正在制作一个基本的bash脚本。我正在尝试获取PID值并将其存储在变量中。我的脚本设置是这样的:

getPID = pgrep -f app.jar
kill -9 $getPID

然后,我意识到我只是在终端上打印pgrep -f app.jar。所以我尝试了:

getPID = $(pgrep -f app.jar)
kill -9 $getPid

仍然没有运气,有没有办法获取pgrep值并将其存储在变量中?
我遇到了多个问题。而且仍然没有运气。我也试过这个,不太确定$$是做什么的。

pgrep -f app.jar
getPid = $$
kill $getPid

我正在使用 Ubuntu 16.04 终端。

$$代表当前外壳的PID,而不是上一个命令的输出。

pgrep的输出捕获到变量中的正确方法是:

getPid=$(pgrep -f app.jar)  # note: no spaces around =
kill $getPid

若要使其在pgrep找不到匹配进程时更具弹性,请执行以下操作:

getPid=$(pgrep -f app.jar)
[[ $getPid ]] && kill $gitPid

或者您可以使用pkill一次性完成此操作:

pkill -f app.jar

另请参阅:

  • 外壳中的$$是什么意思?
  • 如何在 Bash 中将变量设置为命令的输出?

最新更新