Need Help on Shell Script

Hi All;

I have a file , whose content is like :-
file1:
|SITE_A|host1|OS|IP|info|
|SITE_A|host2|OS|IP|info|
.
.
.
|SITE_A|hostn|OS|IP|info|
|SITE_B|hostx|OS|IP|info|
.
|SITE_B|hostxn|OS|IP|info|
|ISITE_C|hosty|OS|IP|info|

so, what syntax i can use if choose SITE_A or SITE_B /SITE_C,then it can display a menu like :(in this case if I choose SITE_A)
HOSTNAME
========
1.bbb 2.ccc 3.ddd 4.eeee
5.xxx 6.yyy 7.zzz 8.www

and then if user select no 3 , so i can run ssh command which automaticly add server no 3 - ssh -X ddd

the reason I question this , if i have a lot of server and site to maintain and i to make my script more clean.
thx in advance!.

What you have sofar?

So far i have

like tradisional menu - such like :
tput cup 0 4
echo " 1. host1 "
tput cup 0 15
echo "2. host2"

and so on .....
and then using case statement to read the the keystroke.

case $input in

  1 \) ssh user1@host1

( I need to do all this command for each site and hosts)
sorry -:(( i can't provide the script , right now at home.
but in this case i need to create 5 different menu for each site.What I just thingking is, I can add new host into 1 single file and the menu can append itself without i need to change my script and using the same command (ssh)for each hosts and site.

Hi friends;

Can u look into this statement ;

echo "Please Select Site Name?"
select var in "site1" "site2" "site3" "site4" "site5"; do
break
done
echo "You have selected $var"
for i in `grep $var Inventory2|awk '{FS=":|; print $2}'`

but getting the errors msg. :
awk: newline in string near line 1
awk: syntax error near line 2
awk: illegal statement near line 2

and how can I check the column size so the next ouput can go to another rows ; like this :
1. Hosts1 2. Host2 3. Hosts3 4. Host4
5. Hosts5 6.Hosts6

Maybe you had something in mind like this (this is far from perfect, but could be a nice starting point).

#!/usr/bin/bash

INPUTFILE=file1

Site_Menu()
{
  SITE=${1}

  HOSTS="DUMMY `grep \"^|${SITE}|\" ${INPUTFILE} | cut -f3 -d\"|\" | sort -u`"
  typeset -i NUMHOSTS
  ((NUMHOSTS=`echo ${HOSTS} | wc -w`-1))
  HOSTARRAY=(${HOSTS})

  CHOICE="-1"
  while [ ${CHOICE} -ne 0 ]
  do
    tput clear
    tput cup 0 0
    echo -n "Menu for site: ${SITE}"
    ROW=2
    COL=0

    tput cup ${ROW} ${COL}
    echo "0. Back"

    INDEX=1
    while [ ${INDEX} -le ${NUMHOSTS} ]
    do
      ((COL=${COL}+20))
      if [ ${COL} -eq 80 ]
      then
        ((ROW=${ROW}+1))
        COL=0
      fi

      tput cup ${ROW} ${COL}
      echo -n "${INDEX}. ${HOSTARRAY[${INDEX}]}"
      ((INDEX=${INDEX}+1))
    done

    ((ROW=${ROW}+2))
    COL=0
    tput cup ${ROW} ${COL}

    echo -n "Enter your choice: "
    read CHOICE

    if [ ${CHOICE} -gt 0 -a ${CHOICE} -le ${NUMHOSTS} ]
    then
      ssh user@${HOSTARRAY[${CHOICE}]}
    fi
  done
}

#Main
SITES="DUMMY `cut -f2 -d"|" ${INPUTFILE} | sort -u`"
typeset -i NUMSITES
((NUMSITES=`echo ${SITES} | wc -w`-1))
SITEARRAY=(${SITES})

CHOICE="-1"
while [ ${CHOICE} -ne 0 ]
do
  tput clear
  tput cup 0 0
  echo -n "Main Menu"
  ROW=2
  COL=0

  tput cup ${ROW} ${COL}
  echo "0. Done"

  INDEX=1
  while [ ${INDEX} -le ${NUMSITES} ]
  do
    ((COL=${COL}+20))
    if [ ${COL} -eq 80 ]
    then
      ((ROW=${ROW}+1))
      COL=0
    fi

    tput cup ${ROW} ${COL}
    echo -n "${INDEX}. ${SITEARRAY[${INDEX}]}"
    ((INDEX=${INDEX}+1))
  done

  ((ROW=${ROW}+2))
  COL=0
  tput cup ${ROW} ${COL}

  echo -n "Enter your choice: "
  read CHOICE

  if [ -z ${CHOICE} ]
  then
    CHOICE=-1
  fi

  if [ ${CHOICE} -gt 0 -a ${CHOICE} -le ${NUMSITES} ]
  then
    Site_Menu ${SITEARRAY[${CHOICE}]}
    CHOICE=-1
  fi
done

Hi ;

thank for the program. it's works as i need. very appreciate on your help (SB008)