我想显示一个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
进一步阅读: