Help in shell script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help in shell script
# 1  
Old 07-24-2015
Help in shell script

Hi all,

I am not sure whether i have coded correctly for my request. It would be great if anyone suggest me whether i have coded the if and else part correctly.

Chennai,Banglore -> Execute 1st step need to be executed.
Trichy,Pondichery,salem ->Execute the 2nd step.
Tirupur ->Execute the 3rd step.


Code:
Location.txt
Chennai,salem, tirupur,banglore, trichy,pondichery.

Code:
#!/bin/sh
for location in $(`cat /home/arun/location.txt`)
do
if [[ $store="chennai" || $store="banglore"]]
then
echo "execute 1st step for   $i";
comand
elif [[ $store ="salem" ||$store ="trichy"  || $store="pondichery" ]]
command
echo "execute 2nd step for  $i";
elif [[ $store ="tiruput" ]]
echo "execute 3rd step for $i";
command
fi
fi
fi
done

---------- Post updated at 09:01 AM ---------- Previous update was at 08:27 AM ----------

Each and every time inputs files be differed and the job will be executed on daily basis
Code:
Input : 
chennai
salem 
banglore
trichy 
tripur

Code:
Chennai or Banglore -> Specific Oracle function wil be called.
Salem,Trichy,Pondi  -> specific oracle function will be called.
Tirupur                  -> Specific oracle function wiill be called.

I need to read the input files and need location need to be checked and particular oracle function need to be triggered.
# 2  
Old 07-24-2015
you read a variable called location and then use tests on store. Is this the whole script?

You also use ` ... ` inside of $( ... ). Both are for command substitution. Neither are necessary because ...:

You should not read files with for!

Iterate lists with for. Read files with while read.

Code:
while read location; do
  if [[ $location = "this" ]] || [[ $location = "that" ]]; then
    ..
  fi
done < "/home/arun/location.txt"

Lastly, the test command requires whitespace. These are different parameters. There must be a space on either side of = when doing tests, and there must not be any when doing assignments.
This User Gave Thanks to neutronscott For This Post:
# 3  
Old 07-24-2015
Oracle function are called for different locations.
Logic conditios
Code:
WHEN (LOCATION = 'CHENNAI' OR  LOCATION = 'BANGLORE')
ID:=GET_LOC.HIGHPRIORITY(Location,Sales)
              
WHEN (LOCATION = 'SALEM' OR  LOCATION = 'TRICHY' or LOCATION=Pondichery)

ID:=GET_LOC.MEDIUMPRORITY(Location,Sales)
               (:lOCATION, :SALES);

WHEN (LOCATION = 'TRIUPUR)

ID:=GET_LOC.LOWPRORITY(Location,Sales)
               (:lOCATION, :SALES);

# 4  
Old 07-24-2015
Hello Arun,

Following is an example for same, hope this may help you.
Input_file:
Code:
cat function_check
chennai
salem
banglore
trichy
tripur
Punjab

Code is as follows for an example.
Code:
cat function_check.ksh
chennai_blr () {
                                echo "you are in function of Chennai and Bangalore. here."
               }
Salem_Trichy_Pondi  () {
                                        echo "You are in function of Salem,Trichy,Pondi here."
                       }
Tirupur () {
                echo "you are in function of Tirupur."
           }
while read file
do
        if [[ "$file" == "chennai" || "$file" == "banglore" ]]
        then
                chennai_blr
        elif [[ "$file" == "salem" || "$file" == "trichy" || "$file" == "pondi" ]]
        then
                Salem_Trichy_Pondi
        elif [[ "$file" == "tripur" ]]
        then
                Tirupur
        else
                echo "You are out of chennai, blr, Salem_Trichy_Pondi and Tirupur, seems you are in $file"
        fi
done < "function_check"

Output will be as follows.
Code:
 ./function_check.ksh
you are in function of Chennai and Bangalore. here.
You are in function of Salem,Trichy,Pondi here.
you are in function of Chennai and Bangalore. here.
You are in function of Salem,Trichy,Pondi here.
you are in function of Tirupur.
You are out of chennai, blr, Salem_Trichy_Pondi and Tirupur, seems you are in Punjab

Thanks,
R. Singh

Last edited by RavinderSingh13; 07-24-2015 at 11:20 AM.. Reason: Did some space formating in code now, successfully done
This User Gave Thanks to RavinderSingh13 For This Post:
# 5  
Old 07-26-2015
Thanks a lot Ravi & Neutron Scott.

From the below script i have called the oracle function for the respective condition through shell script. It would be great if you check an suggest me it is right.

I am not sure whether i have efficiently coded. It would be great if anyone call help me on the below coded script.
Oracle function to be called scenario

Requirement for calling Oracle function for different cities
Code:
 
CASE 1: 
(LOCATION = 'chennai'| LOCATION = 'Banglore')
:VALUE:=LOCATION_COUNT.CHENNAI_BANG
               (&LOCATION,&SALES);
case 2: 
(LOCATION ='SALEM'|LOCATION = 'TRICHY' |LOCATION = 'PONDI')
:VALUE:=LOCATION_COUNT.SAL_TRICHY_PONDI
               (&LOCATION,&SALES);
 
case 3:
(LOCATION = 'TIRUPUR')
:VALUE:=LOCATION_COUNT.GET_TIRUP
               (&LOCATION,&SALES);

Code:
cat function_check.ksh
chennai_blr () {
        VALUE=`sqlplus -S /NOLOG << EOF
        CONNECT dbs/passwd@dbtod
        SET head off
        SET serveroutput on
        select LOCATION_COUNT.CHENNAI_BANG
               (&LOCATION,&SALES) from dual;
        exit;
EOF
               }
 
Salem_Trichy_Pondi  () {
VALUE=`sqlplus -S /NOLOG << EOF
        CONNECT dbs/passwd@dbtod
        SET head off
        select :LOCATION_COUNT.SAL_TRICHY_PONDI
               (&LOCATION,&SALES) from dual;
        exit;
EOF`
 
     }
Tirupur () {
               VALUE=`sqlplus -S /NOLOG << EOF
        CONNECT dbs/passwd@dbtod
        SET head off
        select LOCATION_COUNT.GET_TIRUP
               (&LOCATION,&SALES); from dual;
        exit;
EOF`
           }
 
sales=1000;
while read location
do
        if [[ "$location" == "chennai" || "$location" == "banglore" ]]
        then
                chennai_blr
        elif [[ "$location" == "salem" || "$location" == "trichy" || "$location" == "pondi" ]]
        then
                Salem_Trichy_Pondi
        elif [[ "$location" == "tripur" ]]
        then
                Tirupur
        else
                echo "You are out of chennai, blr, Salem_Trichy_Pondi and Tirupur, seems you are in $file"
        fi
done < "function_check"

---------- Post updated 07-26-15 at 02:19 AM ---------- Previous update was 07-25-15 at 09:03 AM ----------

I have tried myself for calling oracle function for the respective condition.

I am not sure whether it is efficient code. it would be great if anyone call help me out

Last edited by arun888; 07-26-2015 at 09:46 AM..
# 6  
Old 07-26-2015
Perhaps you could write it more like something like this (untested) :

Code:
get_sales_info () {
  loc_code=$1
  sqlplus -S /NOLOG << EOF
  CONNECT dbs/passwd@dbtod
  SET head off
  select LOCATION_COUNT.$loc_code
     (&LOCATION,&SALES) from dual;
  exit;
EOF
}

while read location
do
  case $location in
    chennai|banglore)
      get_sales_info CHENNAI_BANG ;;
    salem|trichy|pondi)
      get_sales_info SAL_TRICHY_PONDI ;;
    tripur)
      get_sales_info TIRUP ;;
    *)
      echo "You are out of chennai, blr, Salem_Trichy_Pondi and Tirupur, seems you are in $location" ;;
  esac
done < "function_check"

This User Gave Thanks to Scrutinizer For This Post:
# 7  
Old 07-27-2015
Hi Scrutinzer,

Thanks a lot for your response.

I will test it from my end.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Shell script newbie- how to generate service log from shell script

Hi, I am totally a newbie to any programming languages and I just started an entry level job in an IT company. One of my recent tasks is to create a script that is able to show the log file of linux service (i.e. ntpd service) lets say, if I run my script ./test.sh, the output should be... (3 Replies)
Discussion started by: xiaogeji
3 Replies

2. Shell Programming and Scripting

Pass C shell array to another C shell script(csh) and shell(sh)

Dear Friends, Please help me on this my script name is send.csh In this i have written the statement like this set args = ( city state country price ) I want to pass this array to another c shell called receiver.csh. and i want to use it in this c shell or how to pass to... (2 Replies)
Discussion started by: SA_Palani
2 Replies

3. Shell Programming and Scripting

How to write config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

4. UNIX for Dummies Questions & Answers

How to write Config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

5. Shell Programming and Scripting

Unable to pass shell script variable to awk command in same shell script

I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist. diff=$1$2.diff id=$2 new=new_$diff echo "My id is $1" echo "I want to sync for user account $id" ##awk command I am using is as below cat $diff | awk... (2 Replies)
Discussion started by: Ashunayak
2 Replies

6. Shell Programming and Scripting

Correct shell script to Call One shell script from another shell script

Hi All, I have new for shell scripting. Problem : I have one scrip at serv1 and path of server is /apps/dev/provimage/scripts and script name:extract_ancillary.bat. I need to call this script at server2(my working server) and execute at server2 . Please let me know how to build the... (5 Replies)
Discussion started by: Vineeta Nigam
5 Replies

7. Shell Programming and Scripting

call another shell script and pass parameters to that shell script

Hi, I basically have 2 shell scripts. One is a shell script will get the variable value from the user. The variable is nothing but the IP of the remote system. Another shell script is a script that does the job of connecting to the remote system using ssh. This uses a expect utility in turn. ... (2 Replies)
Discussion started by: sunrexstar
2 Replies

8. Shell Programming and Scripting

How to use ssh execute other shell script on other host (shell script include nohup)?

i want use ssh on the host01 to execute autoexec.sh on the host02 like following : host01> ssh host02 autoexec.sh autoexec.sh include nohup command like follwing : nohup /home/jack/deletedata.sh & after i execute ssh host02 autoexec.sh one the host01. i can't found deletedata.sh... (1 Reply)
Discussion started by: orablue
1 Replies

9. Shell Programming and Scripting

invoking a shell script inside cgi shell script

Hi, I have an HTML form through which I get some text as input. i need to run a shell script say script.sh inside a perl-cgi script named main_cgi.sh on the form input. I want to write the contents of the form in a file and then perform some command line operations like grep, cat on the text... (2 Replies)
Discussion started by: smriti_shridhar
2 Replies

10. Shell Programming and Scripting

How to Run a shell script from Perl script in Parent shell?

Hi Perl/UNIX experts, I have a problem in running a shell script from my perl script (auto.pl). I run the perl script using perl auto.pl from the shell prompt The shell script picks the files in "input" folder and procesess it. The shell script blue.sh has this code. export... (16 Replies)
Discussion started by: hifake
16 Replies
Login or Register to Ask a Question