我需要终止我的 ID 上所有排队和正在运行的作业。我努力了
at -l | awk '{print $1}'| at -r {}
但我不断得到
{} does not exist
这让我相信我错误地解析了该语句。
答案1
|
将输出通过管道传输到下一个命令的标准输入,而不是其命令行参数。
要删除所有排队的作业,请运行
at -l | awk '{print $1}'| xargs at -r
或者,您可以使用
at -r $( at -l | awk '{print $1}' )
$( ... )
被它包含的命令的输出替换。
也可以看看这个相关问题。
请注意,这只是从 atq 中删除作业,但不会终止正在运行的作业。
如果进程命令行与模式匹配并且没有其他类似的进程在您的用户名上运行,您可以使用以下命令杀死它们
pgrep -u $USER PATTERN