
我想顯示一個whiptail
由 觸發的登入畫面上的消息monit
,但我沒有運氣。
我知道這可能與互動式/非互動式 shell 有關。這是由 觸發的腳本monit
。
#!/bin/bash
/usr/bin/whiptail --infobox 'Hello World.' 7 25 >/dev/tty1
有什麼技巧嗎,或者我應該避免使用鞭尾?
答案1
我剛剛嘗試了以下操作,並且能夠將輸出從我的桌面發送到/dev/tty2
使用whiptail
,所以我認為您所做的似乎是可行的。我注意到的幾件事。
1.權限
我需要成為 root 才能將任何內容傳送到/dev/tty2
.我假設您以monit
很可能無權向 tty 裝置發送資料的使用者身分執行此程式。
2.--infobox
該--infobox
開關似乎在我目前的 shell 中不起作用,但我能夠發送一個--infobox
to /dev/tty2
。 YMMV。--msgbox
在這兩種情況下都有效。
答案2
「技巧」是鞭尾(如對話框)預設將其訊息寫入標準誤,因為常規程序使用標準輸出用於螢幕更新。
2
您可以透過在標記旁邊放置一個來重定向標準錯誤>
:
#!/bin/bash
/usr/bin/whiptail --infobox 'Hello World.' 7 25 2>/dev/tty1
延伸閱讀: