0
compgen
내장 쉘에는 두 가지 어려움이 있습니다. 나는 코드 (ls
사용) 간단한 bash는 _filedir
-like에서 보여 시도 :bash의 공백과 접미사 complete()
_myfiledir(){
path="$cur"
prefix=`echo /$path | grep -o "[0-9a-Z\-+_/]*/"`
sufix=`echo /$path | grep "/[0-9a-Z\-+_]*$" | grep -o "[0-9a-Z\-+_]*$"`
res=`ls -p $prefix`
COMPREPLY=($(compgen -o nospace -W "$res" -- $sufix))
}
을이 경우 cur=="usr/li"
다음 prefix=="/usr/"
및
sufix=="li"
내가이 어려움이있을 때. 공간과 교체가 필요합니다. 예를 들어 :
$ script usr/li[TAB]
내가 얻을 :
$ script lib/ <- additional space here
내가이 필요합니다
$ script usr/lib/ <- no space here
이 코드는 예입니다.