Курс языка программирования Raku / Объекты, ввод-вывод и исключения / Ввод и вывод / Запуск внешних программ 🆕 / Exercises / Запустите команду
Решение: Запустите команду
Вот один из возможных вариантов решения задачи.
Код
run 'echo', 'home:', '$HOME';🦋 Исходный код можно найти в файле run-a-command.raku.
Вывод
home: $HOMEКомментарии
runзапускаетechoнапрямую, передавая каждую строку отдельным аргументом. Без:outвывод программы идёт прямо на экран.Аргумент доходит до
echoровно таким, каким записан:$HOMEпечатается буквально, а не заменяется вашим домашним каталогом, потому что нет оболочки, которая бы его подставила. Именно поэтомуrun— безопасный выбор по умолчанию: та же команда, переданнаяshell, повела бы себя совсем иначе.Чтобы всё-таки напечатать домашний каталог, поручите подстановку оболочке:
shell 'echo home: $HOME'напечатает что-нибудь вродеhome: /home/anna. (Одинарные кавычки нужны и на стороне Raku: в двойных кавычках"$HOME"сам Raku попытался бы интерполировать переменную с именем$HOMEещё до того, как запуститсяecho.)