Visit The New, Modern Unix Linux Community


Dynamic Menu Help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Dynamic Menu Help
# 1  
Question 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 when I quit from the file menu it doesn't re-display the top level folder menu and reset PS3.

Thanks!

#!/bin/ksh
#

PS3="Select System Type>"

select FILE in [A-Z]* QUIT
do
if [ -e $FILE ] ; then
cd $FILE

PS3="Select Test to Run>"
select TEST in [A-Z]* QUIT
do
if [ -e $TEST ] ; then
./$TEST
else
break
fi
done
else
break
fi
done
# 2  
I don't know exactly how your script is intended to work, but I wrote an example script to demonstrate traversing hierarchical menu choices. Maybe it will help (no guarantees that you can't break the script; it makes assumptions).
Code:
#!/usr/bin/ksh
# The quick brown fox jumps over the lazy dog

set -A animalname "fox" "dog"
set -A foxadject "quiet brown" "quick brown" "lazy brown" "quick red" "red slow"
set -A dogadject "slow" "quiet" "sleeping" "lazy" "brown"
set -A action "jump" "run" "skip" "hop" "roll"

until [[ -n $animal && -n $foxadj && -n $dogadj ]]
 do
  clear
  choice=1
  print "\nPlease select an animal.\n"
  select animal in ${animalname[*]}
   do
    choice=2
    print "\nPlease select a description for the $animal.\n"
    case $animal in
      fox)
        select foxadj in "${foxadject[@]}"
         do
          break $choice
        done
        ;;
      dog)
        select dogadj in "${dogadject[@]}"
         do
          break $choice
        done
        ;;
    esac
    break $choice
  done
done

until [[ -n $verb ]]
 do
  print "\nPlease select an action.\n"
  select verb in "${action[@]}"
   do
    break
  done
done

print "\nThe $foxadj fox ${verb}s over the $dogadj dog.\n"

# 3  
Nice program but the 'choices' are embedded in the script. I want to be able to add files to be executed to the menu simple by placing them in the folder instead of hard coded in the script. I didn't want to have to edit the script everytime a test is added.

What I've got reads the top level folders into the menu.

1)Folder1
2)Folder2
3)QUIT
Select System Type>

Once a choice is made here the next menu display the available filelist for execution in that folder.

1)Script1
2)Script2
3)Script3
...
7)Script7
8)QUIT
Select Test to Run>

The problem is when I 'QUIT' from menu 2 I still get menu2 prompt but it's actually at menu1. It doesn't display menu1 either. Simply:

Select Test to Run>
# 4  
maybe something like this:
Code:
#!/bin/ksh

type_prompt='Select System Type> '
PS3="${type_prompt}"

file_choices=[A-Z]*
select FILE in ${file_choices} QUIT
do
   if [ -e $FILE ] ; then
     cd $FILE

     PS3="Select Test to Run>"
     select TEST in [A-Z]* QUIT
     do
        if [ -e $TEST ] ; then
          ./$TEST
        else
          cd ..
          PS3="${type_prompt}"
          break
        fi
     done
  else
     break
  fi
  # added to display  the OUTTER menu
  REPLY=''
done


Last edited by vgersh99; 08-30-2006 at 07:21 PM.. Reason: added display of the initial menue

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #613
Difficulty: Medium
Examples of complex numbers in Python are (-5+4j) and (2.3 - 4.6j).
True or False?

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Gnome 3.28.3 menu item dissapears under the system menu

I installed CentOS 8 with Gnome 3.28.2 and I noticed that the "switch user" menu item disappeared from under the system menu of Gnome classic (Both X11 & Wayland). I checked google and this problem seems to have a history going back several releases of Gnome. Unfortunately, I never found a... (1 Reply)
Discussion started by: bodisha
1 Replies

2. Shell Programming and Scripting

Building a dynamic UNIX menu with input files

Hi! I am looking to build dynamic menu (named: lookup.sh) that reads a pipe delimited file for input. for example, contents of input.txt could be: user1|srv1 user3|srv1 user4|srv1 user2|srv2 I want the menu look like: 1) get password for user1 on srv1 2) get password for user3 on... (7 Replies)
Discussion started by: cpolikowsky
7 Replies

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

4. Shell Programming and Scripting

Need help in create menu with 3 sub menu using the case command

hi all i am a newbie to this is there any examples on creating a main menu with 3 sub menu main menu -> option a , b and c a menu -> option 1 ,2 and 3 b menu -> option 1 ,2 c menu -> option 1 ,2 i am getting headache as my code kept getting unexpected EOF ---------- Post... (0 Replies)
Discussion started by: chercm
0 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

Assigning values to reference variables for a dynamic menu driven script.

How do I assign values to reference variables? I am assigning a variable name to --> $user_var Then I am trying to change its underlying variable value by $((user_var))=$user_value .. its failing,, Please let me know if there is a way to do this dynamically.. FileA.props... (5 Replies)
Discussion started by: kchinnam
5 Replies

7. UNIX for Advanced & Expert Users

Sql dynamic table / dynamic inserts

I have a file that reads File (X.txt) Contents of record 1: rdrDESTINATION_ADDRESS (String) "91 971502573813" rdrDESTINATION_IMSI (String) "000000000000000" rdrORIGINATING_ADDRESS (String) "d0 movies" rdrORIGINATING_IMSI (String) "000000000000000" rdrTRAFFIC_EVENT_TIME... (0 Replies)
Discussion started by: magedfawzy
0 Replies

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

9. Shell Programming and Scripting

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... (5 Replies)
Discussion started by: domivv
5 Replies

Featured Tech Videos