Курс Raku / Об’єкти, введення-виведення та винятки / Введення та виведення / Запуск зовнішніх програм 🆕 / Вправи / Запустіть команду

Розв’язання: Запустіть команду

Ось один із можливих варіантів розв’язання задачі.

Код

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 взагалі запуститься.)

Навігація курсом

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