Tui prompts

tui_input

Prompt the user for a line of text, with an optional default.

Example

name=$(tui_input "Your name" "Alice")

Arguments

  • $1 (string): Prompt text
  • $2 (string): Default value (shown in brackets; used if input is empty)

Exit codes

  • 0: Always

Output on stdout

  • User's input (or default)

tui_confirm

Prompt the user for a yes/no confirmation. Returns 0 for yes, 1 for no. Default is shown in brackets.

Example

if tui_confirm "Proceed?" y; then
  do_the_thing
fi

Arguments

  • $1 (string): Question text
  • $2 (string): Default: "y" or "n" (default: "n")

Exit codes

  • 0: Yes; 1 No

tui_list

Present a numbered list and prompt the user to choose one item.

Example

colour=$(tui_list "Pick a colour" red green blue)

Arguments

  • $1 (string): Prompt text
  • ... (string): List items (all arguments after $1)

Exit codes

  • 0: Valid choice made; 1 No items provided

Output on stdout

  • The chosen item

tui_checkbox

Present a checkbox list; user space-toggles items, Enter confirms. Returns space-separated selected items on stdout.

Example

IFS=' ' read -r -a chosen <<< "$(tui_checkbox "Select features" auth logging metrics)"

Arguments

  • $1 (string): Prompt text
  • ... (string): List items

Exit codes

  • 0: Always (empty string if nothing selected)

Output on stdout

  • Space-separated selected items

tui_password

Prompt for a password (input hidden).

Arguments

  • $1 (string): Prompt text (default: "Password")

Exit codes

  • 0: Always

Output on stdout

  • The entered password

tui_range

Prompt for an integer within a range.

Example

timeout=$(tui_range "Timeout seconds" 1 300 30)

Arguments

  • $1 (string): Prompt text
  • $2 (int): Minimum value (default: 0)
  • $3 (int): Maximum value (default: 100)
  • $4 (int): Default value (default: minimum)

Exit codes

  • 0: Always

Output on stdout

  • Chosen integer