与えられたSHELL PIDでコマンドを実行する方法

与えられたSHELL PIDでコマンドを実行する方法

私は通常のユーザーとして/ bin / bashのシステムにログインし、kshシェルを起動するperlスクリプトを実行する必要があります。 Perlスクリプトが完了し、両方のシェルが有効になっている場合(bashとksh)、bashでトリガーされるスクリプトを作成し、Perlスクリプトを起動し、新しく起動したkshで後続のコマンドを実行する方法は?現在、Perlスクリプトの後に作成されたコマンドが中断され、kshを終了するまで実行されます。両方のSHELL PIDを見ることができますが、2番目のスクリプトで実行している間は、最初のスクリプトでスクリプトを実行する方法がわかりません。コマンド実行コマンド..

例:

#!/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については知りません。

おすすめ記事