私が使う
cur="${COMP_WORDS[COMP_CWORD]}"
opts=`sqlite3 test.db "${QUERY[COMP_CWORD]}"`
SAVEIFS="$IFS"
IFS=$'\n'
COMPREPLY=( $(compgen -S"'" -P"'" -W "${opts}" $cur) )
IFS="$SAVEIFS"
データベースから可能なバリアントを取得し、を使用してそれらを完成させますTAB。これらのバリアントにスペースを含めることができる限り、'
接頭辞と接尾辞として使用して自動引用するのが便利です。したがって、、を押してA、接頭辞を持つバリアントが1つしかない場合は、のようなものになります。BTABAB
'ABC DEF'
しかし、問題は、多くのバリアントがある場合、、、の後AにB、TABを取得し、もう一度'AB
押すとNOPになり、3回目のプレスでのみ完了が可能になることです。TABTAB
TABプレスを1つまたは少なくとも2つに減らす方法はありますか?