# whiptail - display dialog boxes from shell scripts - man(1) - [phpMan]

> **TLDR:** Display text-based dialog boxes from shell scripts.
>
- Display a simple message:
  `whiptail --title "{{title}}" --msgbox "{{message}}" {{height_in_chars}} {{width_in_chars}}`
- Display a boolean choice, returning the result through the exit code:
  `whiptail --title "{{title}}" --yesno "{{message}}" {{height_in_chars}} {{width_in_chars}}`
- Customize the text on the yes/no buttons:
  `whiptail --title "{{title}}" --yes-button "{{text}}" --no-button "{{text}}" --yesno "{{message}}" {{height_in_chars}} {{width_in_chars}}`
- Display a text input box:
  `{{result_variable_name}}="$(whiptail --title "{{title}}" --inputbox "{{message}}" {{height_in_chars}} {{width_in_chars}} {{default_text}} 3>&1 1>&2 2>&3)"`
- Display a password input box:
  `{{result_variable_name}}="$(whiptail --title "{{title}}" --passwordbox "{{message}}" {{height_in_chars}} {{width_in_chars}} 3>&1 1>&2 2>&3)"`
- Display a multiple-choice menu:
  `{{result_variable_name}}=$(whiptail --title "{{title}}" --menu "{{message}}" {{height_in_chars}} {{width_in_chars}} {{menu_display_height}} {{"value_1" "display_text_1" "value_2" "display_text_2" ...}} 3>&1 1>&2 2>&3)`

*Source: tldr-pages*

---

[_WHIPTAIL_(1)](https://www.chedong.com/phpMan.php/man/WHIPTAIL/1/markdown)                            General Commands Manual                           [_WHIPTAIL_(1)](https://www.chedong.com/phpMan.php/man/WHIPTAIL/1/markdown)

## NAME
       whiptail - display dialog boxes from shell scripts

## SYNOPSIS
       **whiptail  **[ **--title _**title_ ] [ **--backtitle _**backtitle_ ] [ **--clear **] [ **--default-item _**string_ ] [
       **--defaultno **] [ **--fb **] [ **--nocancel **] [ **--yes-button _**text_ ] [ **--no-button _**text_ ] [  **--ok-but‐**
       **ton  _**text_  ] [ **--cancel-button _**text_ ] [ **--noitem **[ ] **--output-fd _**fd_ ] [ **--separate-output **] [
       **--scrolltext **] [ **--topleft **] **box-options**

## DESCRIPTION
       **whiptail **is a program that will let you present a variety of questions  or  display  messages
       using  dialog  boxes  from  a shell script. Currently, these types of dialog boxes are imple‐
       mented:

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

## OPTIONS
### --clear
              The  screen  will be cleared to the **screen attribute **on exit.  This doesn't work in an
              xterm (and descendants) if alternate screen switching is enabled, because in that case
              slang writes to (and clears) an alternate screen.

### --defaultno
              The dialog box will open with the cursor over the **No **button.

       **--default-item _**string_
              Set  the default item in a menu box.  Normally the first item in the box  is  the  de‐
              fault.

       **--fb**, **--fullbuttons**
              Use full buttons.  (By default, **whiptail **uses compact buttons).

### --nocancel
              The dialog box won't have a **Cancel **button**.**

       **--yes-button _**text_
              Set the text of the **Yes **button.

       **--no-button _**text_
              Set the text of the **No **button.

       **--ok-button _**text_
              Set the text of the **Ok **button.

       **--cancel-button _**text_
              Set the text of the **Cancel **button.

### --noitem
              The  menu,  checklist  and  radiolist  widgets  will  display  tags only, not the item
              strings. The menu widget still needs some items specified, but checklist and radiolist
              expect only tag and status.

### --notags
              Don't display tags in the menu, checklist and radiolist widgets.

### --separate-output
              For checklist widgets, output result one line at a time, with no quoting.  This facil‐
              itates parsing by another program.

       **--output-fd _**fd_
              Direct output to the given file descriptor.  Most **whiptail **scripts write  to  standard
              error, but  error  messages  may  also  be written there, depending on your script.

       **--title _**title_
              Specifies a _title_ string to be displayed at the top of the dialog box.

       **--backtitle _**backtitle_
              Specifies  a  _backtitle_  string  to  be  displayed  on the backdrop, at the top of the
              screen.

### --scrolltext
              Force the display of a vertical scrollbar.

### --topleft
              Put window in top-left corner.

### -h --help
              Print a help message and exit.

### -v --version
              Print version information and exit.

### Box Options

       **--yesno _**text_ _height_ _width_
              A **yes/no **dialog box of size _height_ rows by _width_ columns will be displayed. The string
              specified by _text_ is displayed inside the dialog box. If this string is too long to be
              fit in one line, it will be automatically divided into multiple lines  at  appropriate
              places.  The  _text_  string  may also contain the sub-string _"\n"_ or newline characters
              _`\n'_ to control line breaking explicitly.  This dialog box is useful for asking  ques‐
              tions that require the user to answer either yes or no.  The dialog box has a **Yes **but‐
              ton and a **No **button, in which the user can switch between by pressing the _TAB_ key.

       **--msgbox _**text_ _height_ _width_
              A  **message **box is very similar to a **yes/no **box.  The only difference between a **message**
              box and a **yes/no **box is that a **message **box has only a single **OK **button.  You  can  use
              this  dialog box to display any message you like.  After reading the message, the user
              can press the _ENTER_ key so that **whiptail **will exit and the calling  shell  script  can
              continue its operation.

       **--infobox _**text_ _height_ _width_
              An **info **box is basically a **message **box.  However, in this case, **whiptail **will exit im‐
              mediately  after  displaying  the  message to the user. The screen is not cleared when
              **whiptail **exits, so that the message will remain on the screen until the calling  shell
              script  clears it later. This is useful when you want to inform the user that some op‐
              erations are carrying on that may require some time to finish.

       **--inputbox _**text_ _height_ _width_ _[init]_
              An **input **box is useful when you want to ask questions that require the user to input a
              string as the answer. If init is supplied it is used to initialize the  input  string.
              When  inputing  the string, the _BACKSPACE_ key can be used to correct typing errors. If
              the input string is longer than the width of the dialog box, the input field  will  be
              scrolled. On exit, the input string will be printed on _stderr_.

       **--passwordbox _**text_ _height_ _width_ _[init]_
              A **password **box is similar to an input box, except the text the user enters is not dis‐
              played. This is useful when prompting for passwords or other sensitive information. Be
              aware that if anything is passed in "init", it will be visible in the system's process
              table  to casual snoopers. Also, it is very confusing to the user to provide them with
              a default password they cannot see. For these reasons, using "init" is highly discour‐
              aged.

       **--textbox _**file_ _height_ _width_
              A **text **box lets you display the contents of a text file in a dialog box. It is like  a
              simple  text  file  viewer.  The  user can move through the file by using the _UP/DOWN_,
              _PGUP/PGDN_ and _HOME/END_ keys available on most keyboards.  If the lines are too long to
              be displayed in the box, the _LEFT/RIGHT_ keys can be used to  scroll  the  text  region
              horizontally.  For more convenience, forward and backward searching functions are also
              provided.

       **--menu _**text_ _height_ _width_ _menu-height_ [ _tag_ _item_ ] _..._
              As its name suggests, a **menu **box is a dialog box that can be used to present a list of
              choices in the form of a menu for the user to choose. Each menu entry  consists  of  a
              _tag_  string  and an _item_ string. The _tag_ gives the entry a name to distinguish it from
              the other entries in the menu. The _item_ is a short description of the option that  the
              entry  represents.  The user can move between the menu entries by pressing the _UP/DOWN_
              keys, the first letter of the _tag_ as a hot-key. There  are  _menu-height_  entries  dis‐
              played  in  the  menu at one time, but the menu will be scrolled if there are more en‐
              tries than that. When **whiptail **exits, the _tag_ of the chosen menu entry will be printed
              on _stderr_.

       **--checklist _**text_ _height_ _width_ _list-height_ [ _tag_ _item_ _status_ ] _..._
              A **checklist **box is similar to a **menu **box in that there are multiple entries  presented
              in  the  form  of a menu.  You can select and deselect items using the SPACE key.  The
              initial on/off state of each entry is specified by _status_.  On exit, a list of the _tag_
              strings of those entries that are turned on will be printed on _stderr_.


       **--radiolist _**text_ _height_ _width_ _list-height_  [ _tag_ _item_ _status_ ] _..._
              A **radiolist **box is similar to a **menu **box.  The only difference is that you  can  indi‐
              cate which entry is currently selected, by setting its _status_ to _on_.


       **--gauge _**text_ _height_ _width_ _percent_
              A  **gauge **box displays a meter along the bottom of the box.  The meter indicates a per‐
              centage.  New percentages are read from standard input, one integer per line.  The me‐
              ter is updated to reflect each new percentage.  If stdin is XXX, the  first  following
              line is a percentage and subsequent lines up to another XXX are used for a new prompt.
              The gauge exits when EOF is reached on stdin.


## NOTES
       whiptail  interprets  arguments  starting with a dash "-" as being arguments.  To avoid this,
       and start some text in, for example, a menubox item, with a dash, whiptail honours the getopt
       convention of accepting the special argument "--" which means that  all  following  arguments
       with dashes are to be treated verbatim and not parsed as options.

       If  the specified height, width, or menu/list-height is zero, **whiptail **will increase the val‐
       ues as needed in order to display all information.


## DIAGNOSTICS
       Exit status is 0 if **whiptail **is exited by pressing the **Yes **or **OK **button, and 1 if the  **No  **or
       **Cancel **button is pressed. Otherwise, if errors occur inside **whiptail **or **whiptail **is exited by
       pressing the _ESC_ key, the exit status is 255.

## AUTHOR
       Based on the man page for [dialog(1)](https://www.chedong.com/phpMan.php/man/dialog/1/markdown) by:

       Savio Lam (<lam836@cs.cuhk.hk>) - version 0.3

       Stuart Herbert (<S.Herbert@sheffield.ac.uk>) - patch for version 0.4

       Modifications for whiptail by:

       Enrique Zanardi (<ezanard@debian.org>)

       Alastair McKinstry (<mckinstry@debian.org>)

Whiptail Version 0.52.5                    31 January 2007                               [_WHIPTAIL_(1)](https://www.chedong.com/phpMan.php/man/WHIPTAIL/1/markdown)
