bash - Toggleable nconf-like menu from command output -
i'm trying create following kind of nconf-like space-toggleable menu:
[*] 1st item [*] 2nd 1 [ ] 3rd 1 [*] 4th 1 the items should created according output of command in script.
you want use dialog (or whiptail; similar) --checklist widget.
here's example command:
options=$( dialog 2>&1 1>/dev/tty \ --keep-tite \ --checklist "dialog title" 20 120 4 \ tag1 "1st item" on \ tag2 "2nd item" off \ tag3 "3rd item" off \ tag4 "4th item" on ) the end result $options contain list of tag values selected items. taking command apart:
dialog uses stdout write terminal , writes own output (the list of selected tags) stderr. that's bit awkward scripting; $(...) construct redirects stdout pipe bash can read from. duplicate pipe stdout stderr (2>&1) final output captured, , set stdout terminal (2>/dev/tty)
dialog 2>&1 1>/dev/tty \ --keep-tite dialog-specific; causes dialog use "alternate screen", means once widget finished, display restored. try , without if wasn't clear.
--keep-tite \ the first 4 arguments after --checklist windows's title, height , width, , menu height (which same number of items)
--checklist "dialog title" 20 120 4 \ the rest of arguments in sets of three: tag (which should not have whitespace or shell metacharacters) used identify selected options; actual text displayed; , indication of whether option selected or not.
tag1 "1st item" on \ tag2 "2nd item" off \ tag3 "3rd item" off \ tag4 "4th item" on
Comments
Post a Comment