すでに実行中のシェルスクリプト内でシェルスクリプトを実行する

すでに実行中のシェルスクリプト内でシェルスクリプトを実行する

ジョブの実行に使用する小さな SLURM クラスターがあります。スクリプトを実行し、スクリプトが実行されたときに特定のキーボードコマンド「t + Enter」を入力したいと思います。別のジョブを送信してこれを行う必要があると思いますが、最初の実行スクリプト内で実行するにはそのジョブが必要です。

これを達成する方法についてのアイデアはありますか?

答え1

聖ジョージ、

これを行うために、別のsbatchコマンドをキューに追加したくありません。 OpenHPCスタックを使用している場合は、wwsh ssh -a <command>whereを使用して-aすべてのノードを意味するか、コマンドを実行したいノードに置き換えることができます。

既存のバッチスクリプトでこれを行う場合は、使用を検討しましたかexpect?入力を実行するのに必要な時間が決定的である場合、expectプログラムは次の入力を受け入れます(t文字の後にreturnキーが続きます)。send -- "t\r"詳しく知りたい場合は、expect次の内容をご覧ください。https://likegeeks.com/expect-command/

私の経験によれば、クラスターに多くのスペースがない場合や最大のパフォーマンスを得たい場合は、xdotoolシステムにx11(または少なくとも必要な部分)をインストールするのではなく、コマンドライン専用の方法を使用することが役に立ちます。実行してください)。個人的な快適さがこれを決定します。

関連情報