作业控制:如何使用作业ID来杀死一个sudo作业

如果我用sudo运行作业,我不能kill %1他们kill %1 (操作不允许)。 我的第一个想法是使用sudo kill %1 ,但是这当然不起作用,因为它不会使用bash内build的kill 。 有没有一个把戏这个工作?

//我知道如何通过PID来杀死一个进程。 问题是如何使用工作id来杀死一个sudo工作。

 sudo kill "$(jobs -p %1)" 

这个问题不好,你应该感觉不好。

注意:在技术上,双引号不是必需的,在这里,因为我们知道jobs的输出将是一个PID,所以不会在$IFS包含任何字符。 但是,引用variables总是一个好习惯。为了确保您始终如一地使用高质量的编码实践,它们必须是根深蒂固的习惯。 $(...)用于反引号,因为反引号是旧的做事方式,他们不太明显。 $(...)是相对而言的新热点。 在这种情况下,新的热度是几十年前的。

它是否工作,如果你尝试:

 sudo kill -9 <pid>