他の疑似端末のシェルにデータを送信できますか?

他の疑似端末のシェルにデータを送信できますか?

次の図は、疑似端末の動作方法を示しています。

ここに画像の説明を入力してください。

"Hello"2つの端末エミュレータが開いている場合は、最初の端末エミュレータから2番目の端末エミュレータに文字列を送信できます。

echo "Hello" > /dev/pts/1

このコマンドが実行されると、文字列は"Hello"2番目の擬似端末のスレーブ側から2番目の擬似端末のホスト側に送信され、次に2番目の端末エミュレータに表示されます。

これで、反対方向、つまり端末エミュレータ(またはシェルが実行されているプロセス)の代わりにシェルにデータを送信できますか?

ベストアンサー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'

注:

  • スクリーンセッションの名前を指定した場合、またはterm1別のterm2名前を使用した場合
  • すでに存在する端末で実行されている場合はscreen -S somename、実行後にscreenセッションのみが終了しますのでご注意くださいexit
    端末全体を停止するには、screen -S somename ; exit代わりに使用してください。
    新しく作成された端末ではこれは必要ありません。

おすすめ記事