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