bash_complete

bash_complete

IP_address나는 심볼릭 링크 -> (pxe 시작용) 를 생성하는 간단한 스크립트를 가지고 있습니다 config_file. 내 스크립트는 다음과 같이 호출됩니다.

lnpxe CONFIG HOSTNAME

CONFIG내 구성 파일 중 하나가 어디에 저장되어 /home/tftp/config/있으며 HOSTNAME호스트 이름이 있습니까? 이제 스크립트에 bash_completion을 설정하려고 합니다. 나는 내 프로필이 나에게 그것을 "제안"하고 내가 입력 lnpxe한 다음 누르는 동안 자동 완성되도록 하길 원합니다. 마찬가지로 두 번째 매개변수의 경우 내 파일에서 사용 가능한 호스트에 대한 제안을 얻고 싶습니다 (ping 또는 ssh가 수행하는 작업과 유사).TAB/home/tftp/config//etc/hosts

여기 내 /etc/bash_completion.d/lnpxe파일이 있는데 내가 원하는 대로 작동하지 않습니다.

_lnpxe()
{
    local cur prev
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"

    _filedir

}
complete -F _lnpxe -o filenames lnpxe

누구든지 도와줄 수 있나요?

답변1

_lnpxe()
{
    HOSTFILE=/etc/hosts
    local word
    COMPREPLY=()
    if [ 1 -eq "$COMP_CWORD" ]; then
      pushd /home/tftp/config &>/dev/null || return 1
      word="${COMP_WORDS[COMP_CWORD]}"
      COMPREPLY=($(compgen -f "$word"))
      popd &>/dev/null
    fi
    if [ 2 -eq "$COMP_CWORD" ]; then
      word="${COMP_WORDS[COMP_CWORD]}"
      COMPREPLY=($(compgen -A hostname "$word"))
    fi

}
complete -F _lnpxe lnpxe

관련 정보