答え1
あなたが探しているものはまったくないかもしれませんが、私は通常ターミナルでスクリーンセッションを実行してこのような問題を解決します。
私はこうする:
- ターミナル1では、次の新しいスクリーンセッションを開始します。1学期多くの
screen -S term1
場合、この機能が必要な場合、端末1はまだ存在しません。この場合、新しい端末でセッションを作成します。xterm -e screen -S term1 & ; disown
あなたは気になるでしょう& ; disown
。これはxtermが起動した後にシェルに戻りxterm
たいと思います。 - 2番目の端末で、次の操作を行います。 (
screen -S term2
または以下を実行して新しい端末を作成しますxterm -e screen -S term2 & ; disown
。) - 現在のコミュニケーション業務は次のとおりです。
- 次のコマンドを使用して、どこからでも(ターミナル2を含む)最初の端末にテキストを送信できます。結果は最初の端末に入力してを押す
screen -S term1 -X stuff 'echo "foo"\n'
のと同じです。echo "foo"
Enter - より簡単な例:入力を送信しますが
some words
、いいえEnterこれを使用してターミナル2に進みます。screen -S term2 -X stuff 'some words'
- 次のコマンドを使用して、どこからでも(ターミナル2を含む)最初の端末にテキストを送信できます。結果は最初の端末に入力してを押す
注:
- スクリーンセッションの名前を指定した場合、または
term1
別のterm2
名前を使用した場合 - すでに存在する端末で実行されている場合は
screen -S somename
、実行後にscreenセッションのみが終了しますのでご注意くださいexit
。
端末全体を停止するには、screen -S somename ; exit
代わりに使用してください。
新しく作成された端末ではこれは必要ありません。
答え2
TIOCSTIは、コメントで説明されているように機能します。トリガー以上:https://stackoverflow.com/a/29615101/2995591
答え3
各プロセスには3つの基本的な「ファイル記述子」があります。
0 is stdin (standart input)
1 is stdout (standart output)
2 is stderr (standart error output)
シェルプロセスのPIDを見つける必要があり、次のことができます。
echo "test" > /proc/{your_shell_pid}/fd/1
その後、テストはシェルプロセスの標準出力として印刷されます。