Проектная лаборатория

Собственный Shell

0 / 76этапов пройдено

Этап 36 · Программируемое дополнение

Регистрация встроенной команды complete

Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.

На этом этапе вы зарегистрируете complete как встроенную команду оболочки.

Встроенная команда complete

Встроенная команда complete позволяет пользователям регистрировать программируемое дополнение для команд.

Например, можно зарегистрировать скрипт дополнения для git:

$ complete -C /path/to/completer_script git

После регистрации оболочка будет вызывать скрипт при нажатии TAB после git, чтобы получить варианты:

$ git clo<TAB>
$ git clone 

На этом этапе достаточно зарегистрировать complete как встроенную команду, чтобы её распознавала команда type. Само поведение мы реализуем на следующих этапах.

Проверки

Тестирующая система запустит вашу программу следующим образом:

$ ./your_program.sh

Затем система проверит, что complete распознаётся как встроенная команда:

$ type complete
complete is a shell builtin

Примечания

  • На этом этапе не нужно реализовывать логику дополнения. Просто зарегистрируйте complete, чтобы она определялась как встроенная команда.
  • Если оболочка уже использует список или словарь встроенных команд (например, echo, cd, pwd), добавьте complete в ту же структуру.

Проверка в вашей IDE

Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.

Настройка проекта и IDE

1. Создайте проект один раз

node '/opt/graphlms/tools/project-lab/cli.mjs' init shell ./my-shell --language go

2. Откройте папку в IDE

cd ./my-shell

Реализуйте требования этапа в созданном проекте.

Запустите из папки проекта

node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage ne7

Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.

Результат проверки

go / ЛОКАЛЬНО

Подключение к локальной проверке…

Здесь появится результат

Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.

GraphLMS — инженерная лаборатория роста