Не понимаю как работает выполнение функции при нажатии tab в терминале.
К примеру я хочу написать утилиту с вложенным функционалом.
usr@pc:~$ main [нажатие TAB]
snapshot save send
usr@pc:~$ main snapshot [нажатие TAB]
-d --dir Каталог [./]
-n --name Имя "Снимок"
На чем это пишется? Как сделать такое. К примеру APT дописывает название пакетов по нажатию TAB.
Как терминал выводит, что есть такие пакеты и достраивает имена, если команда только вводится но еще не исполнена?