特別なディレクトリ内の特定の種類のファイルのbash補完
-
03-07-2019 - |
質問
〜/ .unison / *。prf
に存在するユニゾンプロファイルのリストがあります。
unison
または unison-gtk
と入力してTabキーを押すと、 .prf
.prf
部分のないそのフォルダーのファイル。
おそらく例がより明確になるでしょう:
$ ls ~/.unison/*.prf
default.prf dot-mozilla.prf to-desktop.prf
$ cd ~ # just to show you don't have to be in the ~/.unison folder
$ unison to<tab>
$ unison to-desktop
別のツールにもこれが必要になると思われるので、再利用できる部品があれば便利でしょう。
解決
debian / ubuntuまたはその他のGNU / Linuxディストリビューションを実行している場合、/ etc / bash_completion.d /ディレクトリにこのタイプの補完の例があります。次に、ユニゾンの完了スクリプトを設定する方法の例を示します。
have unison &&
_unison_show()
{
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($( compgen -W "$(for x in ~/.unison/*.prf; do echo $(basename ${x%.prf}); done)" -- $cur ) )
}
complete -F _unison_show unison
所属していません StackOverflow