Проектная лаборатория
Собственный Shell
Этап 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 go2. Откройте папку в IDE
cd ./my-shellРеализуйте требования этапа в созданном проекте.
Запустите из папки проекта
node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage ra6Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.
Результат проверки
go / ЛОКАЛЬНОПодключение к локальной проверке…
Здесь появится результат
Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.