我想寫一個bash腳本來調用我的.bashrc,它將顯示當前客戶端計算機有多少個ssh連接,以及每個窗口中有多少個xwindows都打開這些SSH連接。列出ssh會話和他們打開的xwindows bash
我去它通過查看w
的結果,首先得到含有SSH客戶端的IP地址(SSH連接的來自客戶端的數量)
numConnectionsFromClient=$(w | grep $(echo "$SSH_CLIENT" | awk '{print $1;}') | wc -l);
然後讓數量行數通過在w中尋找$顯示值XWINDOWS(通常是本地主機:10.0)
numXwindowsFromCurrentConnection=$(w | grep "$DISPLAY" | wc -l);
這應該讓XWINDOWS量在當前連接打開,但「FROM」值並不總是相同「$ DISPLAY」值。
如果客戶端有兩個shh連接,所有的「FROM」值都表示「localhost:10.0」,但在第二個ssh連接上「$ DISPLAY」是「localhost:11.0」因此它們不匹配,我的腳本認爲有2個xwindows在第一個連接中打開,而第二個中沒有一個在實際從每個連接開始1 ...因此,混淆。
...基本上我希望腳本顯示來自當前客戶端的連接數,以及從該客戶端當前連接開始的xwindows數量。事情是這樣的:
Welcome blah blah blah
- number of ssh connections open on your machine: 2
- number of xwindows open in this ssh session: 1
甚至更好
Welcome blah blah blah
Current ssh connections from your machine:
$detailsOfSession1 - 1 xwindow open
$detailsOfSession2 - 1 xwindow open
其中會議的細節是「用戶名@ IP:端口>的顯示設置」
所有這一切的目的是這樣,如果有0個xwindows在當前會話中打開,它將在xwindows中打開3個圖形終端,並定位它們如何用於開發工作。終端在xwindows中打開的很好,但是因爲它總是認爲第二個連接沒有打開xwindows,所以每個打開的終端打開另外一個3,然後每個終端打開另一個3, m在終端窗口淹沒! -.-
它是一個相當複雜的問題,我不知道如何句話吧,雖然我希望答案是簡單..提前:)謝謝