バッシュ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
後ろにaを入力すると、Tabオプション名の欠落部分を埋めるのに役立ちますrealpath --relative-to=
。
答え1
bash-completionを有効にした場合は、コマンドを完了するためのコマンドオプションがすでにあります。同様の場所で、この目的のために多くのスクリプトと関数を見ることができます/usr/share/bash-completion
。インストールされたパッケージはgit
スクリプトを/etc/bash_completion.d/
。
完了が制限されているいくつかのスクリプト(realpath
または)がまだ存在する可能性があります。を使用する必要があるecho
長いオプションの完成を追加するには、これは完成を生成するbash関数で、を使用して表示できます。realpath
_longopt
type -a
complete -F _longopt realpath
これを行う前に、次の操作で変更したいことが完了したかどうかをテストする必要があります。
complete -p realpath
no completion specification
これを既存のルールと呼ぶことができますcomplete -F _minimal realpath
。たとえば、新しいルールはそれを上書きします。したがって、多くのコマンドにどの機能(既存またはカスタマイズ)も盲目的に割り当ててはいけません。コマンド補完ルールがすでに存在します。
この変更は現在のシェルに適用されます。永久に作成するには、たとえばを渡してsource
これを行う必要がありますbashrc
。