老白学编程了解whiptail

编程

whiptail 是替代 dialog 的实现,它基于 newt 库.而 newt 则是为了简化 ncurses 开发而产生的新的 tty 下的UI库。

为啥用whiptail? 我想大概是我电脑里默认装的不是dialog而是这个。

基本

这里不多写了, 大家可以问一下超人(man),看一下基本用法, 列一下支持的对话框类型:

  • yes/no box,
  • menu box,
  • input box,
  • message box,
  • text box,
  • info box,
  • checklist box,
  • radiolist box gauge box,
  • and password box.

实例

yes/no box

  #! /bin/bash

whiptail --yesno "Did you already know whiptail?" --yes-button "Yes, I did" --no-button "No, never heard of it" 10 70

CHOICE=$?

返回值:

0 为yes ,1 为no; -1 为出错

menu

#!/bin/bash

OPTION=$(whiptail --title "Menu Dialog" --menu "Choose your favorite programming language." 15 60 4 "1" "Python" "2" "Java" "3" "C" "4" "PHP" 3>&1 1>&2 2>&3)

exitstatus=$?

if [ $exitstatus = 0 ]; then

echo "Your favorite programming language is:" $OPTION

else

echo "You chose Cancel."

fi

这里要注意, 返回值输出在标准错误stderr, 也就是文件描述符 2;

checklist

$ whiptail --checklist "Preferred Linux Distro" 10 44 2 

1 "debian" off

2 "centos" on 2>hh

$ cat hh

"1" "2"

从这里可以更进一步看出, 结果输出在标准错误。

结果是一个列表的形态,以空格分隔。

以上是 老白学编程了解whiptail 的全部内容, 来源链接: utcz.com/z/516182.html

回到顶部