Simple Menu for User Input

Contributor Icon Contributed by gevery77 Date Icon September 2, 2005  
Tag Icon Tagged: Bourne shell scripting

This script will create an input screen in BASH that allows the user to enter information just as they would in a window. This is to show the use of simple functions as well as the tput command. “tput cup” allows the developer to place the cursor anywhere on the screen. There are many more commands that tput recognizes, see the man page for more information.


#!/bin/bash

## Clears the screen and builds the user input screen

function screen() {
clear
cat < ####################################################################
## Main Screen for Input ##
####################################################################
## ##
## User Name: _________________________________________ ##
## Directory: _________________________________________ ##
## Group: _________________________________________ ##
## ##
####################################################################
## Preferences ## Other Info ##
####################################################################
## Show Email? _ ## Receive News? _ ##
## Show Address? _ ## Receive RSS? _ ##
####################################################################
EOF
}

## This will echo out the contents of the helpString variable
## below the screen
function showHelp() {
tput cup 14 0
## Clear out the last information
echo " "
tput cup 14 0
echo $helpString
}
## Display the screen
screen

## Set up the help information, and call the showHelp function
## that displays it
helpString="Enter the user or press ENTER to quit"
showHelp
tput cup 4 18
read username
## If they don't enter a username, quit
if [ "$username" = "" ]
then
exit
fi

## Now go through and get the other data
helpString="Enter Home Directory"
showHelp
tput cup 5 18
read directory

helpString="What group does $username belong to?"
showHelp
tput cup 6 18
read group

helpString="Do you want to show the Email Address to others? [y/n"
showHelp
tput cup 11 19
read showEmail

helpString="Do you want to show your Home Address to others [y/n]"
showHelp
tput cup 12 19
read showAddress

helpString="Would you like to receive the News Letter?"
showHelp
tput cup 11 54
read getNews

helpString="Would you like to receive the RSS Feed?"
showHelp
tput cup 12 54
read getRSS

helpString="Thank you for your input"
showHelp
echo ""

Previous recipe | Next recipe |
 
  • Sunny
    when i just copy paste your script and try to run, i encountered with below error, please suggest what is wrong... and thx for your script...
    ===============
    ERROR:
    user-input.sh: line 7: syntax error near unexpected token `newline'
    user-input.sh: line 7: `cat <'
    =================
  • LukeS
    there are sever problems in his, try this, its still not perfect, but it works:
    #!/bin/bash

    ## Clears the screen and builds the user input screen

    function screen() {
    clear
    cat <<EOF
    ####################################################################
    ## Main Screen for Input ##
    ####################################################################
    ## ##
    ## User Name: [________________________________________] ##
    ## Directory: [________________________________________] ##
    ## Group: [________________________________________] ##
    ## ##
    ####################################################################
    ## [ Preferences ] [ Other Info ] ##
    ####################################################################
    ## [_] Show Email? [_] Receive News? ##
    ## [_] Show Address? [_] Receive RSS? ##
    ####################################################################
    EOF
    }

    ## This will echo out the contents of the helpString variable
    ## below the screen
    function showHelp() {
    tput cup 14 0
    ## Clear out the last information
    echo " "
    tput cup 14 0
    echo $helpString
    }
    ## Display the screen
    screen

    ## Set up the help information, and call the showHelp function
    ## that displays it
    helpString="Enter the user or press ENTER to quit"
    showHelp
    tput cup 4 15
    read username
    ## If they don't enter a username, quit
    if [ "$username" = "" ]
    then
    exit
    fi

    ## Now go through and get the other data
    helpString="Enter Home Directory"
    showHelp
    tput cup 5 15
    read directory

    helpString="What group does $username belong to?"
    showHelp
    tput cup 6 15
    read group

    helpString="Do you want to show the Email Address to others? [y/n"
    showHelp
    tput cup 11 4
    read showEmail

    helpString="Do you want to show your Home Address to others [y/n]"
    showHelp
    tput cup 12 4
    read showAddress

    helpString="Would you like to receive the News Letter?"
    showHelp
    tput cup 11 24
    read getNews

    helpString="Would you like to receive the RSS Feed?"
    showHelp
    tput cup 12 24
    read getRSS

    helpString="Thank you for your input"
    showHelp
    echo ""
blog comments powered by Disqus