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

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

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

Этап 10 · Навигация

Встроенная команда cd: абсолютные пути

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

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

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

Встроенная команда cd (change directory — сменить каталог) используется для изменения текущего рабочего каталога.

Команда cd может обрабатывать аргументы разных типов:

  • Абсолютные пути, например /usr/local/bin.
  • Относительные пути, например ./, ../, ./dir.
  • Символ ~, обозначающий домашний каталог пользователя.

На этом этапе мы сосредоточимся на абсолютных путях.

Обработка абсолютных путей

Абсолютный путь начинается с / и задаёт расположение от корня файловой системы.

Когда cd получает абсолютный путь:

  • Если каталог существует, перейдите в него.
  • Если каталог не существует, выведите cd: <directory>: No such file or directory.

Например:

$ pwd
/home/user
$ cd /usr/local/bin
$ pwd
/usr/local/bin
$ cd /does_not_exist
cd: /does_not_exist: No such file or directory
$ pwd
/usr/local/bin

Если смена каталога не удалась, текущий каталог должен остаться прежним.

Проверки

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

./your_program.sh

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

$ cd /usr/local/bin
$ pwd
/usr/local/bin
$ cd /does_not_exist
cd: /does_not_exist: No such file or directory
$

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

  • Корректные пути меняют каталог.
  • Для некорректных путей выводится сообщение cd: <directory>: No such file or directory.
  • Некорректные пути не меняют текущий каталог.

Примечания

  • Проверяйте существование каталога перед попыткой перехода в него или обрабатывайте ошибку, если переход не удался.

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

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

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

go / ЛОКАЛЬНО

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

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

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

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