私の職務では
# 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
コマンドではなくファイルのみが表示されますか?