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