ssh使用whiptail或对话框

时间:2014-01-10 10:55:56

标签: bash ssh dialog whiptail

我在虚拟机上安装了Ubuntu 12.04服务器,并在其上安装了OpenSSH服务器。我有一个简单的脚本与whiptail

#!/bin/sh
whiptail --title "Example dialog" --infobox "TTTTTT" 8 78

在服务器上,这个脚本正常工作,我看到了信息框。但是在SSH会话中我没有输出。

user@ubuntu:~$ ./script
user@ubuntu:~$ ./script
user@ubuntu:~$ 

使用对话框的Bash脚本在服务器上不起作用。

如何在SSH会话中创建可视菜单脚本?

2 个答案:

答案 0 :(得分:1)

whiptail似乎是在某些终端上显示信息框的错误(见How to display infobox in whiptail?)。也许您可以尝试使用--msgbox来验证脚本的工作原理

whiptail --title "I am the title" --msgbox "Hi there" 8 45

答案 1 :(得分:0)

在xterm中运行whiptail --infobox可以执行此操作,从而导致无法显示:

  • 假设xterm的终端描述包括交替屏幕切换(大多数情况都是这样,因为这是xterm和ncurses定义它的方式):smcup=\E[?1049h, rmcup=\E[?1049l,
  • 启用了备用屏幕切换。
  • 传统终端应用程序在开头发送smcup
  • whiptail是传统的...
  • 在备用屏幕中显示--infobox
  • 没有其他事可做(没有按钮可点击),所以whiptail退出
  • 在出路时,它会发送rmcup,切换回正常屏幕
  • --infobox的输出已丢失

这符合OP的问题中报告的行为。 Red Hat 中提到的How to display infobox in whiptail?报告描述的是同一个问题,以及Ubuntu中的问题。

问题首先在2003的对话框中解决(尽管此后偶尔会有维护修复)。

其他问题中使用的解决方案是使用dialog(实际程序,而不是通用"对话框"在OP的问题中提到)。