2012-06-24 53 views
4

我有一個bash腳本,由anacron每天啓動,需要一些用戶輸入。這應該通過圖形對話框完成,如kdialog提供。Bash:等待,直到用戶完全登錄到X

有三個問題需要考慮:

  • 「是的,開始今天的任務」 - >運行任務
  • 「不,不要今天開始的任務」 - >退出腳本
  • 錯誤,用戶不能完全登錄到X - >重試1分鐘

這裏是我到目前爲止的代碼(腳本運行所討論的用戶):

while ! kdialog --title "Task $DATE" --msgbox "Please make preparations for today's task and press OK" 
do 
    logger -t task "waiting for display to become available" 
    sleep 1m 
done 

這有效,但我沒有看到任何選項使用是否對話框並區分按鈕單擊「否,不要今天開始」和「錯誤,X服務器尚不可用於用戶「 - 因爲kdialog在兩種情況下返回退出碼1。

我想過使用不同的程序來檢查X服務器是否已經可用,但是我沒有想出使用哪種方法。任何人有更好的主意? (使用Kubuntu 10.04與KDE4,如果需要該信息...)

回答

2

檢查:

 
xprop -root 

xprop配備X11-utils的包,最有可能與X11一起安裝...

還要檢查另請參閱人1 xprop

 
SEE ALSO 
     X(7), xdpyinfo(1), xwininfo(1), xdriinfo(1), glxinfo(1), xvinfo(1) 
+0

檢查$ DISPLAY的環境除了速度更快並且不需要額外的程序以外,其它功能也是如此。 – technosaurus

+0

@technosaurus。你是壞的... Anacron從** init **腳本和** DISPLAY ** env var不是從X客戶端填充....並且-1對於我的-1)) – gavenkoa

+1

抱歉等待那麼久複選標記......但我爲我的爸爸編寫了這個腳本,他並不經常使用電腦。最後 - 昨天,他告訴我,它始終如一地工作,沒有失敗。謝謝! – orithena

0

只需使用任何標準的X程序。 ,我建議xdpyinfo,因爲它只是文本。

-1

請考慮將其設爲autostart entry,因爲1)您可能實際上並不需要它開始每天和2)否則您需要找到顯示。