Whiptail或对话框不能通过ssh工作
问题描述:
我在虚拟机上安装了Ubuntu 12.04服务器,并在其上安装了OpenSSH服务器。我有简单的脚本与whiptailWhiptail或对话框不能通过ssh工作
#!/bin/sh
whiptail --title "Example dialog" --infobox "TTTTTT" 8 78
在服务器上此脚本工作,我看到信息框。但在SSH会话中,我没有输出。
[email protected]:~$ ./script
[email protected]:~$ ./script
[email protected]:~$
使用对话框的Bash脚本在服务器上不起作用。
我如何创建在SSH会话中工作的可视菜单脚本?
答
whiptail似乎是在某些终端上显示信息框的车(请参阅How to display infobox in whiptail?)。也许你可以尝试--msgbox而是以验证您脚本工作
whiptail --title "I am the title" --msgbox "Hi there" 8 45
答
运行中的xterm whiptail --infobox
可以做到这一点,这会导致不可见显示:
- 假设的xterm终端描述包括备用 - 屏幕切换(大多数情况下,这是xterm和ncurses定义它的方式):
smcup=\E[?1049h, rmcup=\E[?1049l,
- 备用屏幕切换已启用。
- 传统终端应用之初
- 鞭尾是传统的送
smcup
... - 它在备用屏幕显示
--infobox
- 没有什么更多的事情要做(没有按钮点击),所以鞭尾退出
- 的出路,它发送
rmcup
,切换回正常画面 - 从
--infobox
输出丢失
这与OP问题中报告的行为相符。 How to display infobox in whiptail?中提到的Red Hat报告正在描述相同的问题,以及Ubuntu中的问题。
该问题首先在2003的对话框中得到了解决(尽管从那以后偶尔有维护修复)。
其他问题中使用的解决方案是使用dialog(实际的程序,而不是OP的问题中提到的通用“对话框”)。