我正在制作一个基本的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 中将变量设置为命令的输出?