異なる画面セッションで複数のコマンドを実行するためのシェルスクリプトを作成する方法は?

異なる画面セッションで複数のコマンドを実行するためのシェルスクリプトを作成する方法は?

私の目標は、複数のセッションを作成し、各セッションで別々のコマンドを実行するzshスクリプトを作成することです。screenまた、スクリプトの先頭で画面がジョブを実行していることを確認し、アイドル画面を終了したいと思います。また、可能であれば、個々の画面の標準出力を記録し、対応するID番号を取得する方法があります。これまで私は次のことを試しました。

### Script for running everything in screens ###
killall -15 screen ## We make sure that no screens are running for now
#bkg_array = ("TopJets" "BosonJets" "DiBoson" "TTbar")

screen -dmS "MYSCREEN"
screen -S "MYSCREEN" -p 0 -X stuff 'echo "The array has of elements."\n'

しかし、押したキーを送信できないようですEnter。どうすればいいですか?また、このオプションがないと、-pコマンドは画面に送信されません。押すとCtrl+V+Enter、文字が^M画面に貼り付けられ、スクリーンセッションでEnterキーを押しましたが、なぜこの現象が起こるのかわかりません。

助けてくれてありがとう。あいまいな点があれば、いつでもご指摘ください。

ベストアンサー1

私はscreenがそのような名前付き文字を解釈しませんが、\n8進エスケープを処理することを発見しました。したがって、stuff 'echo "The array has of elements."\n'次のものを使用できます。

stuff 'echo "The array has of elements."'\012

おすすめ記事