Bash
有沒有辦法讓 Bash 中的命令選項名稱自動完成?
我正在使用 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
.complete -F _longopt realpath
在執行此操作之前,您必須測試您嘗試更改的內容是否已經完成,使用:
complete -p realpath
這可以說
no completion specification
或現有的規則,如complete -F _minimal realpath
. 新規則將覆蓋它。所以你不應該盲目地將任何功能,現有的或自定義的,分配給很多命令。命令的完成規則已經存在。該更改適用於您目前的 shell。要使其永久化,您必須使用
source
它,例如 viabashrc
。