“杀死%1”中的%1是什么意思?


12

我知道$!存储最后一个(后台)进程的pid,但这是什么%1意思?我经常将其与一起使用kill,并且具有与相同的效果kill $!。有人可以给我提示吗?(这么小的字词很难用Google搜索:-/)


并不是真的... google.com/search?q=percent+1+bash(请参阅第三个结果)
Hello71,2011年

Answers:


10

%标志是指工作在当前shell的任务列表中,并返回PID。尝试help jobs


1
令我感到困惑的是,man kill该手册页提供了一个外部kill可执行文件,里面没有任何内容%。但是bash也有一个内置组件,kill它作为内置组件优先于外部组件kill,并help kill告诉我们可以将jobspecs与内置组件一起使用kill,并且能够使用jobspecs是它成为内置组件的原因之一。内置的。
Ciro Santilli冠状病毒审查六四事件法轮功

8

您想要的是Google man bash

在Shell中有多种方法可以引用作业。字符%引入了作业名称。作业编号n可以称为%n。也可以使用用于启动作业的名称前缀或使用其命令行中出现的子字符串来引用作业。例如,%ce表示已停止的ce作业。如果前缀与多个作业匹配,则bash报告错误。另一方面,使用%?ce是指任何在命令行中包含字符串ce的作业。如果子字符串匹配多个作业,bash将报告错误。符号%%和%+表示当前作业的Shell概念,这是最后一个作业在前台或后台启动时停止的作业。可以使用%-引用先前的作业。仅当存在当前作业时,%-指当前作业的外壳程序概念。在与作业有关的输出中(例如,作业的输出),当前作业始终用+标记,而先前作业则用-标记。单个%(没有随附的工作说明)也表示当前工作。

可以简单地命名作业即可将其带入前台:%1是“ fg%1”的同义词,将作业1从后台移至前台。同样,“%1&”在后台恢复作业1,相当于“ bg%1”。

TL; DR: %1是工作编号1。


5
我认为质量是工作的第一要...
Ignacio Vazquez-Abrams

1
@Ignacio Vazquez-Abrams:是的,那是自然的要求。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.