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

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

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

Этап 74 · Подстановка параметров

Подстановка переменных

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

На этом этапе вы добавите поддержку подстановки параметров в форме $VAR.

Подстановка

Когда командная строка содержит $NAME, а NAME является переменной, оболочка заменяет $NAME значением переменной перед вызовом встроенных команд или внешних программ.

Подстановка происходит в словах, передаваемых оболочкой как аргументы. Она не меняет внутреннее хранение переменной. Каждое подставленное значение становится отдельным аргументом запускаемой программы.

Например:

$ declare Variable_1=value
$ declare Variable_2=value2
$ echo $Variable_1 $Variable_2
value value2

Здесь после подстановки echo получает два слова (value и value2), а не буквальные строки $Variable_1 и $Variable_2.

Проверки

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

$ ./your_program.sh

Система установит переменные, а затем запустит программу с аргументами, использующими подстановку $VAR. Например:

$ declare Variable_1=Value_1
$ declare Variable_2=Value2
$ custom_exe_1234 $Variable_1 $Variable_2
Program was passed 3 args (including program name).
Arg #0 (program name): custom_exe_1234
Arg #1: Value_1
Arg #2: Value_2
Program Signature: 5998595441

Приведённый выше вывод создаёт сам исполняемый файл. Тестирующая система проверит, что список аргументов соответствует подставленным значениям.

Примечания

  • На этом этапе поддержите только простой синтаксис $VAR. К форме ${VAR} мы перейдём на следующих этапах.

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

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

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

go / ЛОКАЛЬНО

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

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

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

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