我正在制作一个基本的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终端。
答案 0 :(得分:3)
$$
代表当前shell的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
另见: