我正在使用 Bash 4.4。
[root@192 ~]# bash --version
GNU bash, version 4.4.19(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[root@192 ~]#
我想知道是否有任何方法可以使选项名称自动完成。例如,如果我键入realpath --re
并后跟一个Tab,它可以帮助我填写选项名称的缺失部分,然后我得到realpath --relative-to=
.
如果您启用了 bash-completion,则命令选项已经存在以完成命令。您可以在类似
/usr/share/bash-completion
. 已安装的软件包,例如git
将其脚本放入/etc/bash_completion.d/
.仍然可能有一些脚本,如
realpath
orecho
,完成度有限。realpath
要为您应该使用的长选项添加完成_longopt
,这是一个用于生成完成的 bash 函数,您可以使用type -a
.在执行此操作之前,您必须测试您尝试更改的内容是否已经完成,使用:
这可以说
no completion specification
或现有的规则,如complete -F _minimal realpath
. 新规则将覆盖它。所以你不应该盲目地将任何功能,现有的或自定义的,分配给很多命令。命令的完成规则已经存在。该更改适用于您当前的 shell。要使其永久化,您必须使用
source
它,例如 viabashrc
。