在我的职能中,我有
# Tab completion
if [ "$1" = "--complete" ]; then
shift
# Commands
for line in $(compgen -ac "notes_$1" | sed 's/^notes_//'); do
echo $line
done
# Notes
for line in $(cd $NOTES_DIR; ls $1* 2>/dev/null); do
echo $line
done
return
这应该列出所有以 notes_ 开头的命令以及某个目录中的所有文件,并且在调用时会这样做notes --complete
。但是,当我尝试使用制表符完成时
complete -C 'notes --complete "$COMP_LINE"' notes
它只显示文件而不是命令?