Select ksh menu question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Select ksh menu question
# 1  
Old 08-24-2011
Select ksh menu question

I am creating a Select menu with a few options and I would like to create a "better" looking interface than just this:

1) Option 1
2) Option 2
3) Option 3

Instead, I would like something like this:

***********
* Cool Script *
* 1) Option 1 *
* 2) Option 2 *
* 3) Option 3 *
************

Can I do this with Select or do I have to use tput or something else? Below is a snippet of my script so far...

Code:
PS3="$main_menu_prompt"
select cmd in "Option 1" "Option 2" "Option 3"
do
        case $cmd in
                "Option 1")
                        clear
                        PS3="$submenu_prompt"
                        select option in "Yes" "No"
                        do
                                case $option in
                                        "Yes") print "**Not configured**"
                                               sleep 2
                                               break;;
                                        "No")  break;;
                                        *) print "You must enter a valid response!"
                                               sleep 2
                                               clear
                                               submenu;;
                                esac
                        done
                        clear
                        mainmenu
                        PS3=$main_menu_prompt;;

I predefined the PS3 prompts since I use them frequently in the script and I wanted the menu to appear everytime the user needed to provide input (to remind them what they are inputing for). I tried redirecting the screen output of the Select line to /dev/null, but ksh has an issue with the ">".

I googled for an answer/hint but I did not have any luck.

Thank you for any help.
# 2  
Old 08-24-2011
You could come up with your own system. Ask the google, I have seen many menuing systems folks have come up with. Here's a fairly simple one:
Code:
#!/bin/ksh

typeset -r SLEEPTIME=2

REVON=$(tput smso)  # Reverse on.
REVOFF=$(tput rmso) # Reverse off.

while :
do
    clear
    print "\t    $REVON One way to do a menu $REVOFF"
    print
    print
    print "\tOptions:"
    print "\t---------------------------------------------"
    print "\t1) Option 1     4) Option 4"
    print "\t2) Option 2     5) Option 5"
    print "\t3) Option 3     6) Option 6"
    print
    print "\n\tOther Options:"
    print "\t----------------"
    print "\tr) Refresh screen"
    print "\tq) Quit"
    print
    print "\tEnter your selection: r\b\c"
    read selection
    if [[ -z "$selection" ]]
        then selection=r
    fi

    case $selection in
        1)  print "\nYou selected option 1"
            sleep $SLEEPTIME
            ;;
        2)  print "You selected option 2"
            sleep $SLEEPTIME
            ;;
        3)  print "You selected option 3"
            sleep $SLEEPTIME
            ;;
        4)  print "You selected option 4"
            sleep $SLEEPTIME
            ;;
        5)  ;&  #  Fall through example.
        6)  print "You selected option 5 or 6"
            sleep $SLEEPTIME
            ;;
      r|R)  continue
            ;;
      q|Q)  print
            exit
            ;;
        *)  print "\n$REVON Invalid selection $REVOFF"
            sleep 1
            ;;
    esac
done

Looks like this:
Code:
        One way to do a menu


        Options:
        ---------------------------------------------
        1) Option 1     4) Option 4
        2) Option 2     5) Option 5
        3) Option 3     6) Option 6


        Other Options:
        ----------------
        r) Refresh screen
        q) Quit

        Enter your selection: q

$


Last edited by gary_w; 08-24-2011 at 05:32 PM..
This User Gave Thanks to gary_w For This Post:
# 3  
Old 09-05-2011
Hi,

You can try the Curses Command Frontend (CCFE), a nice tool
to create menus to call shell scripts or commands.
It's curses based, so you can select items by moving a
cursor using arrow keys.
You can also add a form to ask user for input parameters and options
requested by selected script.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Stuck with menu in select

hi i am new to bash scripting .. i created a bunch of folders but only want the folder names with file1. so i go in and make an array to grab the folders the put in a file then i strip the directories so i just have the folder names i need then i would like to make the menu with a selection... (3 Replies)
Discussion started by: lamby22
3 Replies

2. Shell Programming and Scripting

Help with 'select' for menu input

A lot of my scripting makes use of the 'select' command to create menu driven input. A typical example of how I use it is as: somevar='' PS3='Select one: ' while ]; do select somevar in $(sqlplus -s $dbuser/$dbpw@mydb <<EOF set echo off feedback off verify off... (7 Replies)
Discussion started by: edstevens
7 Replies

3. Shell Programming and Scripting

Format of 'select' generated menu

Oracle Linux 5.6 64-bit Given the below snippet ORACLE_SID='' PS3='Select target (test) database being refreshed: ' # while ]; do select ORACLE_SID in `egrep -i '^FS|^HR' /etc/oratab |\ awk -F\: '{print $1}'|sort` ; do if ]; then echo echo "Please enter a... (19 Replies)
Discussion started by: edstevens
19 Replies

4. Shell Programming and Scripting

File Select Menu Script

Hi All, I need to develop a bash script list “list of files” and able to select if any and set as globe variable in script and use for other function. I would like to see in menu format. Example out put Below are the listed files for database clone 1. Sys.txt 2. abc.txt 3. Ddd.txt... (1 Reply)
Discussion started by: ashanabey
1 Replies

5. Shell Programming and Scripting

reprint the select menu after a selection

Hi, I am using a select in ksh for a script #!/bin/ksh FIRSTLIST='one two three four quit' PS3='Please select a number: ' select i in $FIRSTLIST ; do case $i in one) print 'this is one' ;; two) print 'this is 2' ;; three) print 'this is 3' ;; four) print... (7 Replies)
Discussion started by: omerzzz
7 Replies

6. Shell Programming and Scripting

Error using select menu command

Hi All, I am trying to use the select command & the menu. below mention is my script #!/bin/bash 2 3 PS3="Is today your birthday? " #PS3 system variable 4 5 echo "\n" 6 7 8 select menu_selection in YES NO QUIT 9 do 10 11 ... (1 Reply)
Discussion started by: milindb
1 Replies

7. Shell Programming and Scripting

Select command to build menu

Hello everyone. I am using the select command to build a menu, here is my question: Is it possible to generate a menu which contains several sections and have a separator between the sections without having a selection number generated in front of the separator? This is a sample of what I would... (1 Reply)
Discussion started by: gio001
1 Replies

8. Shell Programming and Scripting

reappearing menu list using select

is there a way I can make the menu list reappear when I use select ? ----- menulist="Change_title Remove_tag Change_tag Add_line Quit" select word in $menulist #change_title remove_tag change_tag add_line quit do case $word in # first menu option Change Title ... (9 Replies)
Discussion started by: forever_49ers
9 Replies

9. Shell Programming and Scripting

Drop down menu in bash for timezone select

Is there any way to implement a drop down menu selection in bash? This is on CDLinux which is a very minimal live CD and I am using it to install an image onto a hard drive. Part of that process is the timezone selection. There are just too many timezones to attempt to use the "select" command.... (1 Reply)
Discussion started by: simonb
1 Replies

10. Shell Programming and Scripting

dynamic Select menu

Hi all is menu driven by SELECT can be a dynamic ? My requirement is that i want SELECT to be created on run time not predefine . The select should be created as per the no of words in a file thanks in advance rawat (2 Replies)
Discussion started by: rawatds
2 Replies
Login or Register to Ask a Question