У мене є виконуваний файл, який запускає інтерактивну оболонку користувача. Я хотів би, щоб після запуску оболонки ввести кілька команд спочатку, а потім дозволити користувачеві провести свій інтерактивний сеанс. Я можу це зробити легко, використовуючи echo
:
echo "command 1\ncommand 2\ncommand3" | ./shell_executable
Це майже працює. Проблема полягає в тому, що команда echo, яка подає stdin процесу, потрапляє на EOF, коли це робиться, повторюючи мої команди. Цей EOF змушує оболонку негайно закінчуватися (як би ви натиснули Ctrl + D у оболонці).
Чи є спосіб ввести ці команди в stdin, не викликаючи після цього EOF?
./shell_executable
в кінець списку команд? Це може продовжувати роботу, хоча у вас буде два запущені екземпляри (батько та дитина).