Проектная лаборатория
Собственный Shell
Этап 12 · Навигация
Встроенная команда cd: домашний каталог
Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.
На этом этапе вы расширите встроенную команду cd для обработки символа ~.
Встроенная команда cd: напоминание
Напомним, что cd может принимать аргументы нескольких типов:
- Абсолютные пути, например
/usr/local/bin. (Обработаны на ранних этапах.) - Относительные пути, например
./,../,./dir. (Обработаны на предыдущих этапах.) - Символ
~.
Символ ~
Символ ~ (тильда) — сокращённое обозначение домашнего каталога пользователя. Это удобный способ быстро вернуться в домашний каталог из любой точки файловой системы.
Домашний каталог задаётся переменной окружения HOME. При получении cd ~ оболочка должна:
- Прочитать значение переменной окружения
HOME. - Перейти в этот каталог.
Например:
$ pwd
/usr/local/bin
$ cd ~
$ pwd
/home/user
$ cd /var/log
$ pwd
/var/log
$ cd ~
$ pwd
/home/userПроверки
Тестирующая система запустит вашу программу следующим образом:
./your_program.shЗатем система отправит оболочке последовательность команд cd:
$ cd /usr/local/bin
$ pwd
/usr/local/bin
$ cd ~
$ pwd
/home/user
$Тестирующая система проверит, что:
cd ~переходит в домашний каталог.- Домашний каталог соответствует значению переменной окружения
HOME.
Примечания
- Большинство языков предоставляет функции чтения переменных окружения (например,
process.env.HOMEв Node.js,os.getenv('HOME')в Python илиgetenv("HOME")в C).
Проверка в вашей 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 gp4Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.
Результат проверки
go / ЛОКАЛЬНОПодключение к локальной проверке…
Здесь появится результат
Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.