Tôi có một thực thi bắt đầu một vỏ tương tác người dùng. Tôi muốn, khi khởi chạy shell, tiêm một vài lệnh trước, sau đó cho phép người dùng có phiên tương tác của họ. Tôi có thể làm điều này một cách dễ dàng bằng cách sử dụng echo
:
echo "command 1\ncommand 2\ncommand3" | ./shell_executable
Điều này gần như hoạt động. Vấn đề là lệnh echo đang cung cấp stdin của tiến trình chạm vào EOF sau khi hoàn thành việc lặp lại các lệnh của tôi. EOF này khiến trình bao chấm dứt ngay lập tức (như thể bạn đã nhấn Ctrl + D trong trình bao).
Có cách nào để tiêm các lệnh này vào stdin mà không gây ra EOF sau đó không?
./shell_executable
vào cuối danh sách các lệnh chưa? Điều đó có thể giúp nó tiếp tục, mặc dù bạn sẽ có hai phiên bản đang chạy (cha mẹ và con).