Como executar um comando em um determinado SHELL PID

0

Estou logado em um sistema em / bin / bash, como um usuário regular, então eu preciso executar um script perl que, por sua vez, inicia um shell ksh. Depois que o script perl é feito, ambos os shells estão vivos (bash e ksh) Como eu posso escrever um script que será disparado do bash, então ele irá lançar o script perl, e os comandos subseqüentes precisam ser executados no novo ksh lançado. a partir de agora comandos escritos após o script perl travar .. e são executados até eu sair do ksh .. Eu sou capaz de ver os dois SHELLs PID, mas não sei como executar um comando no segundo, enquanto o script é executado no primeiro ..

exemplo:

#!/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
    
por Miguel Gomez Glez 15.02.2017 / 19:37

1 resposta

0

SE você é o pai ou irmão, você pode manter uma referência a stdin do processo ksh e enviar comandos dessa maneira, mas geralmente, você não pode enviar comandos para um processo de execução aleatório dessa maneira. Então, no seu exemplo, você poderia usar o script perl para enviar comandos para o ksh no stdin. Mas seu script bash de login não sabe sobre o ksh em execução após o script perl sair.

    
por 15.02.2017 / 19:44