답변:
가장 쉬운 방법은에 쉘 스크립트를 포함시키는 것입니다 /etc/bash_completion.d/
. 이 파일의 기본 구조는 완료를 수행 한 다음 complete
bash 내장 함수를 호출하는 간단한 함수입니다 . 사용법에 대해 자세히 알아보기보다는 Bash Completion에 대한 소개를complete
읽는 것이 좋습니다 . Part 1은 기본 사항을 다루고 Part 2는 완성 스크립트 작성 방법에 대해 설명합니다.
bash 완료에 대한보다 자세한 설명은 "Programmable Completion"섹션에서 찾을 수 있습니다 man bash
( "/ Programmable Completion"을 입력 한 다음 'n'을 몇 번 눌러 빠르게 도착할 수 있습니다. 또는 운이 좋으면 "g 2140 RETURN ").
기본 안내서는 다음과 같습니다.
자동 완성 기능을 사용하려는 admin.sh라는 스크립트 예제를 사용할 수 있습니다.
#!/bin/bash
while [ $# -gt 0 ]; do
arg=$1
case $arg in
option_1)
# do_option_1
;;
option_2)
# do_option_1
;;
shortlist)
echo option_1 option_2 shortlist
;;
*)
echo Wrong option
;;
esac
shift
done
옵션 명단을 참고하십시오. 이 옵션으로 스크립트를 호출하면이 스크립트에 가능한 모든 옵션이 인쇄됩니다.
그리고 여기 자동 완성 스크립트가 있습니다 :
_script()
{
_script_commands=$(/path/to/your/script.sh shortlist)
local cur prev
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=( $(compgen -W "${_script_commands}" -- ${cur}) )
return 0
}
complete -o nospace -F _script ./admin.sh
마지막으로 완료 할 인수는 자동 완성을 추가하려는 스크립트의 이름입니다. bashrc에 자동 완성 스크립트를 추가하면됩니다.
source /path/to/your/autocomplete.sh
또는 /etc/bash.completion.d에 복사하십시오.