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

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

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

Этап 06 · Основные этапы

Реализация type

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

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

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

Встроенная команда type определяет, как интерпретировалась бы команда при её использовании. Она проверяет, является ли команда встроенной, исполняемым файлом или неизвестной.

Например:

$ type echo
echo is a shell builtin
$ type exit
exit is a shell builtin
$ type invalid_command
invalid_command: not found

На этом этапе нужно обработать два случая:

  • Для встроенных команд (например, echo, exit и type) выводите <command> is a shell builtin.
  • Для неизвестных команд, не совпадающих ни с одной встроенной, выводите <command>: not found.

Исполняемые файлы мы обработаем на следующих этапах.

Проверки

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

./your_program.sh

Затем система отправит оболочке последовательность команд type:

$ type echo
echo is a shell builtin
$ type exit
exit is a shell builtin
$ type type
type is a shell builtin
$ type invalid_command
invalid_command: not found
$

Тестирующая система проверит, что:

  • Для встроенных команд выводится: <command> is a shell builtin.
  • Для неизвестных команд выводится: <command>: not found.

Примечания

  • На этом этапе тестирующая система проверяет только встроенные и неизвестные команды.
  • Сама type — встроенная команда оболочки, поэтому $ type type должна вывести type is a shell builtin.

Проверка в вашей 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 ez5

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

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

go / ЛОКАЛЬНО

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

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

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

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