Case switching


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Case switching
# 1  
Old 05-08-2015
Case switching

Hello Folks

I am writing this simple program but I am stuck at this point. Here is the snippet from my script where I have issues.

Code:
3)     echo "Current Directory:   $(pwd)                Menu 3"

      echo -e "Enter a file name\n"
      read fname
      if [ -f $name ]
      then

              if [ -x $name ]
              then
                cat $name
              else
                echo "You do not have access to file $name"
              fi
      else
                 echo "File $name doesn't exist"
        
                echo -e "Press Enter to return to the Main Menu\c"
                read dummy
        fi
;;

4)      clear
        
        echo "Current Directory:   $(pwd)                Menu 4"

        echo  -e "Enter a directory name\n"
        read dname
        if [ -d $dname ]
        then
                cd $dname
                if [ $? -eq 0 ]
                then
                        continue
                else
                        echo "Directory $dname not accessible"
        
                fi
        else
                echo "Subdirectory $dname does not exist."
        
                echo -e "Press Enter to return to the Main Menu\c"
                read dummy
        fi

This is a section of the script where it takes entry either 3 or 4. If 3 is selected it prompts for the user to enter filename and if the user is hitting just enter and not any filename, it should return to main menu. But that's not happening, its just looping around and waiting for an input. But if 4 is selected and an enter is pressed with out directory name it goes to that cd $dname part and moves to main menu. Since $dname is empty as the user has not provided any value it goes to home directory of the user.

My requirement is that the script should go back to main menu if the user hits just "enter" with out any value. How can I achieve that?
# 2  
Old 05-08-2015
Heya

You are reading fname, and compare name later.
Also highly recomend, use quotes around variables when comparing (if, case, ...)
Otherwise an empty variable results in a failing script, rather than a failed comparision.

hth

Last edited by sea; 05-08-2015 at 06:04 AM.. Reason: typo: fname, not vname
This User Gave Thanks to sea For This Post:
# 3  
Old 05-08-2015
that was typo "fname and name" happened when I pasted it here and edited. But when I put the variables in quotes on if condition, it started working.
# 4  
Old 05-08-2015
Just seeing more places of chances to break the script.
Put quotes around all variables that may contain file or folder names, as both of which may contain spaces.
The absolute only place no quotes are required, is if a variable is set to numbers, as the do not contain spaces at all - doesnt apply to this code sample though.

Saying these need quotes too:
  • cat file
  • -[fdx] file

Have a nice day
# 5  
Old 05-08-2015
But is there any way we can just exit to main menu if the value entered is a null?

Got the answer comparing the vaue with null and doing continue.

Last edited by Tuxidow; 05-08-2015 at 06:19 AM..
# 6  
Old 05-08-2015
There are for and while loops.

For a menu, a while loop is highly recomended.
So you set a variable to be checked (boolean), and while its true, you loop the menu.

The actual actions become functions, which are called upon selection within the while loop.
When the function ends (return), it returns back to the menu, unless you quite the script (exit).

hth
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Change first letter of a word from lower case to upper case

Hi all, I am trying to find a way to change first letter in a word from lower case to upper case. It should be done for each first word in text or in paragraph, and also for each word after punctuation like . ; : ! ?I found the following command sed -i 's/\s*./\U&\E/g' $@ filenamebut... (7 Replies)
Discussion started by: georgi58
7 Replies

2. Shell Programming and Scripting

Conversion from Upper Case to Lower Case Condition based

Hello Unix Gurus : It would be really appreciative if can find a solution for this . I have records in a file . I need to Capitalize the records based on condition . For Example i tried the following Command COMMAND --> fgrep "2000YUYU" /export/home/oracle/TST/data.dat | tr '' ''... (12 Replies)
Discussion started by: tsbiju
12 Replies

3. Shell Programming and Scripting

[Solved] Change Upper case to Lower case in C shell

Is there a command that can switch a character variable from UPPER case to lower case? like foreach AC ( ABC BCD PLL QIO) set ac `COMMAND($AC)` ... end Thanks a lot! (3 Replies)
Discussion started by: rockytodd
3 Replies

4. Shell Programming and Scripting

sed ignoring case for search but respecting case for subtitute

Hi I want to make string substitution ignoring case for search but respecting case for subtitute. Ex changing all occurences of "original" in a file to "substitute": original becomes substitute Origninal becomes Substitute ORIGINAL becomes SUBSTITUTE I know this a little special but it's not... (1 Reply)
Discussion started by: kmchen
1 Replies

5. Shell Programming and Scripting

data array needs to change upper case to lower case

Hi all, i have a data array as followes. ARRAY=DFSG345GGG ARRAY=234FDFG090 ARRAY=VDFVGBGHH so on.......... i need all english letters to be change to lower case. So i am expecting to see ARRAY=dfsg345ggg ARRAY=234fdfg090 ARRAY=vdfvgbghh so on........ If i have to copy this data in... (8 Replies)
Discussion started by: usustarr
8 Replies

6. Shell Programming and Scripting

Script to Convert Upper case to Lower case

Hi All I have a script which extracts values from a Database (A persons name) and puts it into a variable in my script IE: $NAME However the Value in the DB is all in uppercase and contains the users first name and last name EG: > echo $NAME GRAHAM BOYLE > What I need is only the... (7 Replies)
Discussion started by: grahambo2005
7 Replies

7. Shell Programming and Scripting

how to convert value in a variable from upper case to lower case

Hi, I have a variable $Ctrcd which contains country names in upper case and i want to convert them into lower case. I have tried so many solutions from already existing threads but couldn't get the correct one. Can anybody help me with this..... Thanks a lot.. (2 Replies)
Discussion started by: manmeet
2 Replies

8. Shell Programming and Scripting

Script needed to select and delete lower case and mixed case records

HELLO ALL, URGENTLY NEEDED A SCRIPT TO SELECT AND DELETE LOWER AND MIXED CASE RECORDS FROM A COLUMN IN A TABLE. FOR EXAMPLE : Table name is EMPLOYEE and the column name is CITY and the CITY column records will be: Newyork washington ... (1 Reply)
Discussion started by: abhilash mn
1 Replies

9. UNIX for Dummies Questions & Answers

lower case to upper case string conversion in shell script

How can convert a Lower case variable value to an upper case in the kron shell script. (3 Replies)
Discussion started by: dchalavadi
3 Replies
Login or Register to Ask a Question