bash `auto_resume` 作业控制变量如何工作?

bash `auto_resume` 作业控制变量如何工作?

章节7.3 作业控制变量Bash 参考手册关于变量有以下描述auto_resume

auto_resume

该变量控制 shell 如何与用户和作业控件交互。如果设置了此变量,则不带重定向的单字简单命令将被视为恢复现有已停止作业的候选命令。不允许有歧义;如果存在多个以键入的字符串开头的作业,则选择最近访问的作业。在这种情况下,已停止作业的名称是用于启动它的命令行。

如果设置为该值exact,提供的字符串必须与已停止作业的名称完全匹配;如果设置为substring,提供的字符串需要与已停止作业名称的子字符串匹配。该substring值提供类似于%?作业标识符的功能(请参阅作业控制基础知识)。

如果设置为任何其他值,提供的字符串必须是已停止作业名称的前缀;这提供了类似于%string作业标识符的功能。

此功能的目的和背后的历史是什么?

是否存在此功能真正有用的用例?

答案1

是否存在此功能真正有用的用例?

<意见>

并不真地。它只适合那些懒得打字%或的人%?

$ sleep 3600
^Z
[1]+  Stopped                 sleep 3600
$ %s
sleep 3600
^Z
[1]+  Stopped                 sleep 3600
$ s
bash: s: command not found
$ auto_resume=ON
$ s
sleep 3600
^Z
[1]+  Stopped                 sleep 3600

因此,它允许您sleep ...使用 justs而不是 来恢复工作%s。有什么大不了的。

事实上,它可能会令人讨厌,因为打字ss可以恢复后台运行ssh而不是运行ss命令。

有趣的事实:auto_resume一起的histchars特点是它们是 bash 赋予特殊含义的唯一小写变量。

相关内容