4
내 파일 시스템 용 bash_completion 스크립트를 작성하고 싶습니다. 일부 DB에 쿼리를 보내는 클라이언트 프로그램이 있습니다.Bash의 사용자 지정 경로 완성
예 :
my_prog --ls db_name:/foo/bar/
이 명령은 db_name:/foo/bar
폴더에있는 파일의 표준 출력 목록에 기록합니다.
자동 완성 기능을 사용하고 싶습니다. 그래서 탭을 누르면 옵션 목록이 표시됩니다. 내가 탭을 누르고는 현재 입력 된 경로를 대체 하나의 옵션이, 그래서 때
my_prog --ls db_name:/foo/bar/<tab>
하지만
이 경우에 나는이 받고 있어요 :$ my_prog --ls db_name:/foo/bar/<tab>
$ my_prog --ls file
을하지만 경기가 추가 될하려면 입력 된 경로의 끝. 비슷한하는 동안
__complete_path()
{
COMPREPLY=()
if [[ ${1} == "" ]]
then
COMPREPLY=("/")
compopt -o nospace
return
fi
base=${1##*/}
dir=${1%/*}
options="my_prog --ls ${db}:${dir}"
COMPREPLY=($(compgen -W "${options}" -- ${base}))
compopt -o nospace
}
무엇이'$ {db} '입니까 ?? –