我正在尝试设置一个基于提供它的 PID 的export
有效进程。运行该命令似乎有效(如果kill
pgrep
kill $(pgrep myAppName)
'我的应用程序名称'是实际运行进程的名称)...但是如何将此命令保存为导出的环境变量?我能想到的命令的每个变体似乎都会尝试评估pgrep myAppName
为类似的值20137
(或类似的 PID 值),并且第一次运行导出的变量可以工作,但之后显然不会工作,因为导出的命令实际上是kill 20137
,该进程已经终止。
如何才能将其正确保存在变量中,以便我可以在$KILL_APPNAME
每次运行命令时键入类似杀死该进程的内容?
答案1
我什么思考您正在尝试做需要做的事情eval
以便工作:
THING="eval kill \$(pgrep myAppName)"
$THING
zsh
但它很尴尬,并且默认情况下在所有 shell 中都不起作用(例如,尽管可以设置一个选项使其起作用,但默认情况下它不起作用)。无论你想要做什么,很可能用更干净、更简单的东西(比如函数)来更好地解决:
kill_my_app() {
kill $(pgrep myAppName)
}
kill_my_app
或者,正如其他人在评论中指出的那样,只需使用pkill
orkillall
即可完全满足您的需要。