nohup 的 Bash 补全

nohup 的 Bash 补全

我创建了一个detach脚本,作为以下内容的包装nohup

#!/bin/bash

/usr/bin/nohup "$@" &> /dev/null &

我想让 bash-completion 为这个脚本工作。

我尝试使用complete -c detach,但对于所有参数,都有来自 的实用程序的添加PATH

如何为我的detach实用程序正确实现 bash-completion?

答案1

既然你正在使用bash 完成,最简单的解决方案可能是询问它nohup是如何完成的1

$ complete -p nohup
complete -F _command nohup

然后将相同的完成配方应用于detach

$ complete -F _command detach

请参阅“我应该在哪里安装我自己的本地完成项?”在 bash 完成中常问问题查找最适合此命令的位置。

_command函数依次调用_command_offset,即根据发表评论bash_completion:

# sudo(8) 等命令的元命令完成函数,需要
首先完成命令,然后根据该命令自己的
完成定义完成。


1假设已 在其中获取了交互式shell。如果您使用 Arch Linux,正如您的评论似乎暗示的那样,默认情况下每个交互式 Bash 会话都是如此(来源)。bashbash_completion/etc/bash.bashrc/usr/share/bash-completion/bash_completion

相关内容