我有一个名为 load_pg 的函数,它的定义如下:
load_pg () {
pg_restore --verbose --clean --no-acl --no-owner -h localhost -U $1 -d $2 $3
}
我正在尝试使用以下代码自动完成每个参数:
#compdef load_pg
_arguments -s \
"1::_ldpguser" \
"2::_ldpgdb" \
"3::_ldpgfile"
_ldpguser () {
compadd $USER
}
_ldpgdb () {
compadd $(cat config/database.yml | grep -i database | awk '{print $2}')
}
_ldpgfile () {
compadd $(ls *.dump*)
}
不幸的是,当我按 TAB 时没有任何反应。我究竟做错了什么?我尝试使用以下答案中的代码