애플리케이션이나 별도의 프로그램을 통해 셸과 상호 작용할 수 있는 방법이 있습니까?

애플리케이션이나 별도의 프로그램을 통해 셸과 상호 작용할 수 있는 방법이 있습니까?

셸에서 출력을 받은 다음 출력을 반환하는 방법을 찾으려고 하는데 다른 프런트 엔드 인터페이스에서요? Linux 터미널을 잠재적인 애플리케이션에 통합하려고 합니다.

답변1

제어 애플리케이션은 두 개의 파이프를 열고 Pipe()를 두 번 사용해야 합니다. 그런 다음 하위 프로세스를 분기합니다.

원래 코드에 있는 동안 부모는 한 파이프의 쓰기 끝과 다른 파이프의 읽기 끝을 닫습니다.

동시에 하위 프로세스는 이러한 파이프의 반대쪽 끝을 닫고 dup2()를 사용하여 이를 스트림 0과 1에 다시 할당합니다. 그러면 부모 프로세스가 자식의 stdin에 쓸 파이프와 자식의 stdout에서 읽을 파이프가 남습니다.

마지막으로, subexec는 필요한 매개변수를 포함하는 원하는 쉘입니다.

답변2

expect도구입니다. 읽다man expect https://linux.die.net/man/1/expect

관련 정보