2

スクリプトを作成して、それぞれが独自のscreenインスタンスを実行する4つの端末を作成し、最初の端末にbashコマンド(私の例では上部)を送信してから、そのセッションを他の各端末にリンクしようとしています。なぜ私がそうしたいと思うのかについては、投稿の最後を参照してください。

とにかく、それは私が望んでいることとほぼ同じです。最終的に、4つの端末がそれぞれ適切な名前の画面インスタンスを実行し、最後の端末を除くすべてが元のセッションにリンクされます。しかし、最後のものではありません。だからここにコードがあります、そして私は誰かがそれが期待通りに振る舞わない理由を私に知らせてくれることを望んでいます:

#!/bin/bash

for i in {1..4}
do
    gnome-terminal --window-with-profile=hdesk$i -e 'screen -S hdesk'$i
done

screen -XS hdesk1 stuff 'top^M'

for i in {2..4}
do
    screen -XS hdesk$i stuff 'screen -x hdesk1^M'
done

スクリプトとして実行するのではなく、ターミナルから同じ行を1行ずつ実行してみましたが、正常に機能しました。何らかの理由で、セッション'hdesk4'は存在しますが、'hdesk1'をアタッチしていません。

理由としては、私はcompizを使用しており、この端末を粘着性のあるものにしたい(すべての仮想デスクトップに存在する)。しかし、私は4つの2行に8つの仮想デスクトップを持っています。このスティッキーを一番下の列に配置したくないので、1つの端末をスティッキーに設定することはできません。したがって、その目標を達成するが、この画面の混乱を完全に回避するソリューションも歓迎されます。

編集:コードや、機能していない状態と機能している状態の間で他の変更を加えていませんが、機能するようになりました。コンピューターを一晩停止し、一時停止を解除しました。

4

1 に答える 1

1

私はあなたのコードを試しました、これを思いつきました:

#!/bin/bash

for i in {1..4}
do
    gnome-terminal --window-with-profile=hdesk$i -e 'screen -S hdesk'$i
done

screen -XS hdesk1 stuff 'top^M'

for i in {2..4}
do
    screen -XS hdesk$i stuff 'screen -x hdesk1^M'
    sleep 1
done

なぜこれが機能するのかわかりません、多分 screenあまりにも速く接続することを拒否しますか?

于 2012-09-17T05:52:38.903 に答える