# phpman > man > WHIPTAIL(1)

> **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.

## 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)
