Курс языка программирования Raku / Объекты, ввод-вывод и исключения / Ввод и вывод / Запуск внешних программ 🆕 / Exercises / Запустите команду

Решение: Запустите команду

Вот один из возможных вариантов решения задачи.

Код

run 'echo', 'home:', '$HOME';

🦋 Исходный код можно найти в файле run-a-command.raku.

Вывод

home: $HOME

Комментарии

  1. run запускает echo напрямую, передавая каждую строку отдельным аргументом. Без :out вывод программы идёт прямо на экран.

  2. Аргумент доходит до echo ровно таким, каким записан: $HOME печатается буквально, а не заменяется вашим домашним каталогом, потому что нет оболочки, которая бы его подставила. Именно поэтому run — безопасный выбор по умолчанию: та же команда, переданная shell, повела бы себя совсем иначе.

  3. Чтобы всё-таки напечатать домашний каталог, поручите подстановку оболочке: shell 'echo home: $HOME' напечатает что-нибудь вроде home: /home/anna. (Одинарные кавычки нужны и на стороне Raku: в двойных кавычках "$HOME" сам Raku попытался бы интерполировать переменную с именем $HOME ещё до того, как запустится echo.)

Навигация по курсу

Запустите команду   |   Захватите вывод