Dynamic select with multiple word menu items


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Dynamic select with multiple word menu items
# 1  
Old 07-22-2004
Dynamic select with multiple word menu items

Hello all,

I'm developing a deployment script at work and at one point it would need to display something like this:

Which version of ADMIN would you like to deploy?
1) 1.0.0 (store1, 10 Jan 2004)
2) 1.0.1 (store1, 20 Jun 2004)
3) 1.0.2 (store1, 15 Jul 2004)
Select a version :

I know how I could do this in the hardcoded way, BUT the list of menu items being displayed is collected dynamically when needed.

The actual question being : Is it possible to somehow parameterise the select statement so that it displays menu items in which blanks can appear.

Example of hardcoded way :
select option in "one one" "two two"; do
break
done

displays:
1) one one
2) two two

So, how can this "one one" "two two" part in the select be replaced by something that is parameterised.

Thanks.
# 2  
Old 07-22-2004
You don't say which shell you are using. Using ksh...
Code:
#!/usr/bin/ksh

set "one one" "two two"

select x in "$@"
do
  break
done

1) one one
2) two two
#?
# 3  
Old 07-22-2004
I'm indeed using ksh. I'll give it a try...
Thx
# 4  
Old 07-22-2004
Ok, tried it. The example works of course.

Now image that the actual data is completely unknown and dynamically created. The result in my case is put in file. This would mean a flat text file with something like this :

one one
two two

in it.

The contents of the file can be modified to make it work, but I don't seem to succeed.
# 5  
Old 07-22-2004
Ok, just figured it out ! For those who might be interested, this is what I did.

1) source file with following contents:
one one
two two

2) the coding:
ix=0
while read record; do
item[$ix]="$record"
ix=$(($ix+1))
done < cat source

set "${item[@]}"

select n in "$@"; do
break
done

3) the result:
1) one one
2) two two
#?
# 6  
Old 07-22-2004
Example using a file named "source" instead of parameters...
Code:
#!/usr/bin/ksh

IFS="
"
select x in $(<source)
do
  break
done

Note that you may have to restore the original value of IFS afterwards.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Issue with search and replacing multiple items in multiple files

Im having an issue when trying to replace the first column with a new set of values in multiple files. The results from the following code only replaces the files with the last set of values in val.txt. I want to replace all the files with all the values. for date in {1..31} do for val in... (1 Reply)
Discussion started by: ncwxpanther
1 Replies

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

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

4. UNIX for Dummies Questions & Answers

Dynamic menu selection? Help..

Hi guys, i would like to create a program that allow user to show the information of certain thing such as network card. I would like the menu to be dynamic, for example: my computer system have 2 network card inserted at the moment, therefore the menu will have 2 choice for the user. eth0... (12 Replies)
Discussion started by: malfolozy
12 Replies

5. Web Development

Dynamic Drop Down Menu

I need to create a dynamic drop down menu which is populated by entries such as; htdocs/client1/index.php htdocs/client2/index.php htdocs/client3/index.php htdocs/client4/index.php etc. So htdocs/client*/index.php Is this possible? I know how to do this using normal arrays, but not... (2 Replies)
Discussion started by: JayC89
2 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

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

8. Shell Programming and Scripting

Dynamic Menu Help

I'm working on a menu to read folders in as menu selections then CD to the selected folder and display the contained files as menu selections for execution. I'm using the following to read in the file list but I get lost after that. I only read in files that begin with CAPs. The problem is... (3 Replies)
Discussion started by: ScottKe
3 Replies

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