Sponsored Content
Full Discussion: Switch Case not working
Top Forums Shell Programming and Scripting Switch Case not working Post 302614749 by Rapcher on Wednesday 28th of March 2012 07:45:44 PM
Old 03-28-2012
Switch Case not working

My switch case is not working properly. When I press 6 or 'r' it prints out all the names of the project and the error message.

Code:
#!/bin/bash

while true; do

    read -p "Enter project number (1/2/3/10/20/30):" menu
    #grabs the informations of the project number and stores it into a menu
    case "${menu}" in
          1)  awk -F ":"  '/'$menu:'/ {print "Project Name: ", $1}' project.txt
                ;;
          2)  awk -F ":"  '/'$menu:'/ {print "Project Name: ", $1}' project.txt
               ;;
          3)  awk -F ":"  '/'$menu:'/ {print "Project Name: ", $1}' project.txt
               ;;
          10) awk -F ":"  '/'$menu:'/ {print "Project Name: ", $1}' project.txt
               ;;
          20) awk -F ":"  '/'$menu:'/ {print "Project Name: ", $1}' project.txt
               ;;
          30) awk -F ":"  '/'$menu:'/ {print "Project Name: ", $1}' project.txt
               ;;
          *)  echo "No project exists with the given project number: ${menu}"
               ;;
    esac
    
    var2=$(awk -F ":" '/'$menu:'/ {print $4}' project.txt)
    
    var3=$(awk -F ":" '/':$var2:'/ {print $3}' department.txt)
    
    cut -d ":" -f 1-4 employee.txt > temp.txt

awk -F ":" '/'$var3'/ {print "Managers Name: ", $1,$2,$3}' temp.txt
/bin/rm temp.txt

    awk -F ":" -v MEN=$menu '$2==MEN { hours += $3; } END { printf "Total Employee Hours: %.2f\n", hours }' works_on.txt

    awk -F ":" -v ID=$var3 '$1==ID { count ++ } END { printf "Total number of dependents: " count "\n"}' dependent.txt

    read -p "Would you like to process another project? [y/n]" yn
    case $yn in
        [Yy]* ) ;;
        [Nn]* ) exit;;
        *) echo "Please select proper entry:";;
    esac
done

 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Ignore case sensitive in Case Switch

In a Case switch, how to ignore case sensitive in the test: e.g. case "$field" in "TEST) action1;; *) action2;; esac How to go in action1 in case of $field = TEST , or Test , or test or .... without enumerating all possibilities... Thanks,... (1 Reply)
Discussion started by: annelisa
1 Replies

2. UNIX for Dummies Questions & Answers

grep -A switch not working correctly with -m

egrep -A 7 -m 2 -h 'Date:|Time:' *.html this is showing only 2 line after the context of the 2nd found match. Is this a bug in grep? egrep -A 7 -m 2 -h 'Time:' *.html - this works correctly (2 Replies)
Discussion started by: zer0
2 Replies

3. Shell Programming and Scripting

Help needed in switch case handling in UNIX

Hi, In below code, i am expecting the output has Bye Bye But i am getting has Bye Hi Code: #!/usr/bin/bash var="Hi" cat txt.txt | while read var1 do next="Bye" case $var in Hi) (1 Reply)
Discussion started by: Balamani
1 Replies

4. Shell Programming and Scripting

Help needed in Switch Case

Hi Experts team, i wish to use switch case in unix. my req is case $code in 1111) echo "1111" 1112) echo "1112" *) echo "default" esac see eventhough for particular case 1111 , it is always execute the default statement *), if i code like this. How can handle... (2 Replies)
Discussion started by: spkandy
2 Replies

5. Shell Programming and Scripting

Example of switch case in Bash

can anyone post a sample code for a switch case in shell (1 Reply)
Discussion started by: sumit the cool
1 Replies

6. Shell Programming and Scripting

Something is wrong with this switch( case statement.

I started writing a script to save the files from a camera I got the other day, which mounts in /Volumes , and I got into it and started building this menu. The only problem is that the switch case is coming up as a syntax error at the parenthesis after a case. Here is the code: while : do ... (2 Replies)
Discussion started by: snakemasterAK
2 Replies

7. Shell Programming and Scripting

Error while executing switch case for find and replace specific file. Help Me...

case "$inputs" in sapte) find /pools/home_unix/sapte/work/models/model -name "*.xml" exec rm -i {} \;; ckm1) find /pools/home_unix/ckm1/work/models/model -name "*.xml" exec rm -i {} \;; I am getting error like as below. ./menu1.sh: line 144: syntax error near unexpected token `)'... (4 Replies)
Discussion started by: lathigara
4 Replies

8. Programming

Passing arguments from command line to switch case statement in C

Hi Am pretty new to C.. Am trying to pass the arguments from command line and use them in switch case statement.. i have tried the following #include <stdlib.h> main(int argc, char* argv) { int num=0; if ( argc == 2 ) num = argv; printf("%d is the num value",num); switch ( num ) ... (2 Replies)
Discussion started by: Priya Amaresh
2 Replies

9. Shell Programming and Scripting

Why does it not work (Switch Case)?

Hi there, I'm trying to run a simple script,but i'm always getting this error Syntax error: word unexpected (expecting "in")I have searched many sites,like this,but i dont get it,it looks good so far,but wont work,maybe someone can help me. Here is the Script #!/bin/bash while : do... (6 Replies)
Discussion started by: JustAnUser
6 Replies
PWD(1)							    BSD General Commands Manual 						    PWD(1)

NAME
pwd -- return working directory name SYNOPSIS
pwd [-L | -P] DESCRIPTION
The pwd utility writes the absolute pathname of the current working directory to the standard output. Some shells may provide a builtin pwd command which is similar or identical to this utility. Consult the builtin(1) manual page. The options are as follows: -L Display the logical current working directory. -P Display the physical current working directory (all symbolic links resolved). If no options are specified, the -L option is assumed. ENVIRONMENT
Environment variables used by pwd: PWD Logical current working directory. EXIT STATUS
The pwd utility exits 0 on success, and >0 if an error occurs. SEE ALSO
builtin(1), cd(1), csh(1), sh(1), getcwd(3) STANDARDS
The pwd utility conforms to IEEE Std 1003.1-2001 (``POSIX.1''). BUGS
In csh(1) the command dirs is always faster because it is built into that shell. However, it can give a different answer in the rare case that the current directory or a containing directory was moved after the shell descended into it. The -L option does not work unless the PWD environment variable is exported by the shell. BSD
April 12, 2003 BSD
All times are GMT -4. The time now is 05:58 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy