我有一个简单的脚本,它创建一个符号链接IP_address
-> config_file
(用于 pxe 启动)。我的脚本是这样调用的:
lnpxe CONFIG HOSTNAME
CONFIG
我的配置文件之一存储在哪里/home/tftp/config/
,并且HOSTNAME
是任何主机名。现在,我正在尝试为我的脚本设置 bash_completion。当我输入lnpxe
然后按 时TAB
,我希望我的配置文件/home/tftp/config/
“建议”给我并自动完成。同样,对于第二个参数,我想从我的/etc/hosts
文件中获得可用主机的建议(类似于 ping 或 ssh 所做的)
这是我的/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