주어진 SHELL PID에서 명령을 실행하는 방법

주어진 SHELL PID에서 명령을 실행하는 방법

나는 일반 사용자로 /bin/bash의 시스템에 로그인했고, ksh 쉘을 시작하는 perl 스크립트를 실행해야 합니다. Perl 스크립트가 완료되고 두 셸이 모두 활성화되면(bash 및 ksh), bash에서 트리거되는 스크립트를 작성하고 Perl 스크립트를 시작하고 새로 시작된 ksh에서 후속 명령을 실행해야 하는 방법은 무엇입니까? 현재로서는 Perl 스크립트 다음에 작성된 명령이 중단되고 ksh를 종료할 때까지 실행됩니다. 두 SHELL PID를 모두 볼 수 있지만 두 번째 스크립트에서 실행하는 동안 첫 번째 스크립트에서 스크립트를 실행하는 방법을 모르겠습니다. 명령 실행 명령..

예:

#!/bin/bash
pathtoperl=/path/to/perl/script

command1
command2
##call perl command which initiates a ksh among other stuff
$pathtoperl/perlscript -arguments

command3     #need to be run in new ksh, not in current /bin/bash
command4     #need to be run in new ksh, not in current /bin/bash

답변1

상위 또는 형제 프로세스인 경우 ksh 프로세스의 stdin에 대한 참조를 유지하고 그런 방식으로 명령을 보낼 수 있지만 일반적으로 무작위로 실행되는 프로세스에는 이 방식으로 명령을 보낼 수 없습니다. 따라서 귀하의 예에서는 perl 스크립트를 사용하여 stdin의 ksh에 명령을 보낼 수 있습니다. 그러나 로그인 bash 스크립트는 Perl 스크립트가 종료된 후 실행 중인 ksh에 대해 알지 못합니다.

관련 정보