Select command help with blank input value


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Select command help with blank input value
# 1  
Old 07-31-2013
Select command help with blank input value

I have a select menu driven script using a case statment and cannot control what happens after a user's input is just <ENTER> or the <SPACEBAR>+<ENTER>. I want it to just hit the "MAIN" function and not redraw the options. I've look everywhere for the answer and am at a loss.

Here's the code:
-------------------------------------------------------------------
Code:
 #!/usr/bin/ksh

MAIN ()
{
clear
echo " Main Menu"
echo "--------------------------"
PS3=$'--------------------------\n\nSelect Option: '

select option in "Refresh" "Exit" "Stop" "Start"
do
        case ${option} in
                   '') echo "Invalid Choice";sleep 2;MAIN;;
               "Exit") exit;;
            "Refresh") MAIN;;
               "Stop") echo STOP;exit;;
              "Start") echo START;exit;;
                      
        esac
done

}

MAIN

--------------------------------------------------------------------

Here's what the screen looks like when executed:

Code:
Main Menu
--------------------------
1) Refresh
2) Exit
3) Stop
4) Start
--------------------------

Select Option:

When you press <ENTER> or the <SPACEBAR>+<ENTER> from this menu it shows this:

Code:
Main Menu
--------------------------
1) Refresh
2) Exit
3) Stop
4) Start
--------------------------

Select Option: 
1) Refresh
2) Exit
3) Stop
4) Start
--------------------------


Select Option:


I figured that the '') in the case statement would work but it is only handling any selection that is not valid. I figured that <ENTER> or the <SPACEBAR>+<ENTER> would be caught under this but it isn't.

If anyone know how to correct this your would be much appreciated.
Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!

Last edited by vgersh99; 07-31-2013 at 01:48 PM.. Reason: code tags, please!
# 2  
Old 07-31-2013
<space><enter> behave as you expected: "invalid choice " is displayed for 2 seconds, and then MAIN is executed (BTW, be careful with unterminated recursion here!).
The behaviour of <enter> alone is a feature of the select command, see its man page.
# 3  
Old 07-31-2013
Quote:
Originally Posted by RudiC
<space><enter> behave as you expected: "invalid choice " is displayed for 2 seconds, and then MAIN is executed (BTW, be careful with unterminated recursion here!).
The behaviour of <enter> alone is a feature of the select command, see its man page.
<enter> or <space><enter> are not behaving as expected it does not go to "invalid choice" for 2 secs, then MAIN, it's just displaying the menu list down on the screen over and over, hence this is my issue I'm wanting to correct. That behaviour doesn't not seem right.
# 4  
Old 08-02-2013
I didn't think there would be a solid answer on this since I could not find any information online about this issue.
# 5  
Old 08-06-2013
What if something else is entered, i.e. not a number? Consider also a wildcard option for your case statement:-
Code:
case this in
   a) x=1 ;;
   b) x=2 ;;
   c) x=3 ;;
   *) echo "Invalid" ;;
esac

I thinks that select is working as designed. It is simple enough and work, but not that flexible, however I am very happy to use it. Perhaps you could allow any input and then work on the choice outside of the select loop, just calling it to display your menu.



Robin



Robin
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Select command

Hi I'm using the "select" command in the global_env.sh to log in to the application directory. This file is called in .bashrc profile. Sample code: Filename: global_env.sh set -o vi export severname=$(uname -n) printf '%s\n%30s\n%s\n' "***********************" "Welcome to $severname"... (6 Replies)
Discussion started by: cheers799
6 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

Script to select the rows from the feed file based on the input value provided

Hi Folks, I have the below feed file named abc1.txt in which you can see there is a title and below is the respective values in the rows and it is completely pipe delimited file ,. ... (3 Replies)
Discussion started by: punpun66
3 Replies

4. UNIX for Dummies Questions & Answers

Select Command - return

Hello everyone, A simple question which may have a suggested solution: I am using, and loving, the select command in a ksh93 script on AIX 6.1 to present users with menus. I have been successful in controlling all of key input by the users, I still have an issue with the RETURN key. When the... (4 Replies)
Discussion started by: gio001
4 Replies

5. Shell Programming and Scripting

PS3 select when wrong input given

Hi All I am using the below code to chose a file to view : PS3="Select file to view : " select FILE in `ls` QUIT do if ; then clear cat $FILE else break fi REPLY='' done Everything works fine as long as I am giving the correct choice . But when i give a... (4 Replies)
Discussion started by: ningy
4 Replies

6. Shell Programming and Scripting

how to test input variable is a string in a select loop

Okay -- I hope I ask this correctly. I'm working on my little shell script to write vendor names and aliases to files from user input. If a user choose to add to a file, he can do that as well. I'm using a select loop for this function to list all the possible files the user can choose from.... (7 Replies)
Discussion started by: Straitsfan
7 Replies

7. Shell Programming and Scripting

extract/select pattern from input

Hey, examples of the input (text line): /bla/blMOasdn234.adanif24/blabla.rar /bla/blMOasdn234.adanif24/blabla23124.bin /bla/bla/bla/bla/bla/bla.bin and what I need to do is extract/select only the dir path so the output would be: /bla/blMOasdn234.adanif24/ /bla/blMOasdn234.adanif24/... (4 Replies)
Discussion started by: TehOne
4 Replies

8. Shell Programming and Scripting

Validating user input is not blank

Trying to create a script in BASH that would ask the user to enter another user name making sure the input is not blank before they hit enter then to check the home directory of that user does exist, I have the check folder sorted it's just the loop to make sure the user has entered chars (5 Replies)
Discussion started by: MBN
5 Replies

9. Shell Programming and Scripting

Select command array

Hello everyone, I have a quick question about the select command in ksh. I am using it to define a menu for user selection, I have found that the REPLY var contains the input from the user, I was interested to find out if there is a system variable that contains the whole menu as an array, the... (2 Replies)
Discussion started by: gio001
2 Replies

10. Shell Programming and Scripting

select datas from an input file

I have a file containing a list of references and I want to run a script that will make the same action for each reference. The input file changes every hour, it's why I want to use a script that can read in a file, record by record, and run a specific action for the reference readed. Thanks... (1 Reply)
Discussion started by: dde
1 Replies
Login or Register to Ask a Question

Featured Tech Videos