bash_complete

bash_complete

IP_address私はシンボリックリンク - >(pxe起動用)を生成する簡単なスクリプトを持っていますconfig_file。私のスクリプトは次のように呼び出されます。

lnpxe CONFIG HOSTNAME

CONFIG私の設定ファイルの1つはどこに保存され、/home/tftp/config/ホストHOSTNAME名はありますか?これでスクリプトにbash_completionを設定しようとしています。私は私のプロフィールが私にそれを「提案」し、私が入力してから押しながらlnpxe自動補完するようにしたいと思います。同様に、2番目のパラメータについては、私のファイルで利用可能なホストの提案を取得したいと思います(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

おすすめ記事