如果我使用 运行作业,则sudo
无法运行kill %1
它们(操作不允许)。我的第一个想法是改用sudo kill %1
,但这当然也行不通,因为它不会使用 bash 内置的kill
。有什么技巧可以让它工作吗?
// 我知道如何通过进程的 PID 来终止进程。问题具体是关于如何使用作业 ID 来终止 sudo 作业。
答案1
sudo kill "$(jobs -p %1)"
笔记:从技术上讲,这里不需要双引号,因为我们知道的输出jobs
将是 PID,因此不会包含 中的任何字符$IFS
。但是,引用变量始终是一个好习惯。为了确保您始终使用高质量的编码实践,它们必须是根深蒂固的习惯。 比$(...)
反引号更常用,因为反引号是旧的做事方式,而且不太显眼。$(...)
相对而言,是新的热点。在这种情况下,新的热点已有几十年的历史了。