Conditional Execution of a Script.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Conditional Execution of a Script.
# 1  
Old 04-22-2013
Wrench Conditional Execution of a Script.

I have a unix shell script Test.sh

more Test.sh

Code:
echo "Calling dbquery1.sh...."
./dbquery1.sh
echo "Calling dbquery2.sh...."
./dbquery2.sh

more dbquery1.sh
Code:
sqlplus  -s user1/password1@DB_SID @/tmp/storedprocedures/Hello.rcp

I run Test.sh

However, I do not want dbquery2.sh to be executed unless dbquery1.sh executes successfully[If there is any ORA Database error then also dbquery2.sh should not execute].

How can I achieve this ?
# 2  
Old 04-22-2013
if dbquery1 returns a returncode, you can use it for the second script:

Code:
./dbquery1.sh
if [[ $? -eq 0 ]] ; then
echo "Calling dbquery2.sh...."
./dbquery2.sh
fi

or
Code:
./dbquery1.sh && ./dbquery2.sh

# 3  
Old 04-22-2013
Hi, question is that sqlplus return an errorcode only if there are a connection issue, else in every case return 0.
A simple solution is to redirect the output to a tmp file and check the content:
Code:
echo "Calling dbquery1.sh...."
./dbquery1.sh > output.tmp
grep -q ORA- output.tmp
if [ $? -ne 0 ]
then 
echo "Calling dbquery2.sh...."
./dbquery2.sh
fi

# 4  
Old 04-22-2013
sqlplus returns a meaningful return code when you tell it to do so.
You'll have to modify your sql-commandfile:
Code:
$ cat bad.sql
whenever sqlerror exit failure
select this_produces_an_error from dual;
exit 0
$
$ cat good.sql
whenever sqlerror exit failure
select dummy from dual;
exit 0
$
$ sqlplus -s / as sysdba @good.sql

D
-
X

$ echo $?
0
$
$ sqlplus -s / as sysdba @bad.sql
select this_produces_an_error from dual
       *
ERROR at line 1:
ORA-00904: "THIS_PRODUCES_AN_ERROR": invalid identifier


$ echo $?
1

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Bashrc File - Conditional Command Execution?

Hello All, I was wondering if there is a way to execute a command in my ".bashrc" file based on how I logged into the PC? I was thinking maybe there is a way to check how the user (*myself) logged in, maybe somehow with the who command along with something else, but I'm not sure... I know I... (7 Replies)
Discussion started by: mrm5102
7 Replies

2. UNIX for Dummies Questions & Answers

Conditional Script

Hi, I have a script file which has some simple commands. I want these commands to be executed based on the input. Ia m good with IF statement also. At the end it has to be based on incoming value. Example CASE 1 : Execute some commands where Input value as 1 CASE 2 : Execute... (5 Replies)
Discussion started by: vrupatel
5 Replies

3. Shell Programming and Scripting

Conditional execution

Here's an interesting (to me, anyway) little puzzle. Background: I have a process that restores a number of large(ish) files from tape backup. As an individual file is being written, it is owned by root, then the ownership is changed when that file is complete. Since this process can take... (3 Replies)
Discussion started by: edstevens
3 Replies

4. Shell Programming and Scripting

search and conditional execution

Hi, I have a list of files with different filenames like nam0001.txt,pan0001.txt etc coming in /data/inbox from various places. I needed a shell script which would:- 1)searches for a word from the filenames (coming in inbox directory) provided in input parameter. 2)if found, put in... (2 Replies)
Discussion started by: Saiesh
2 Replies

5. UNIX for Dummies Questions & Answers

Conditional execution of statements

Hi , I have a script which has multiple awk and sed commands like below. First one :- find /root/src/ -name "*csv" -size 0 -exec rm {} \; Second one: - ls *SRE*.txt > SRT_TRAN.dat rm *asr*.txt Third one :- find /root/src/ -name '*.csv' | while read FILENAME ; do awk... (2 Replies)
Discussion started by: shruthidwh
2 Replies

6. Shell Programming and Scripting

Conditional execution

Hi All, I want to echo a message in case a system is reachable by ping or echo a different message in case it's not reachable. Sample code i wrote is ping localhost -n 2 | grep 'ttl' > ping_op; ls ping_op > /dev/null && drReachable=Alive; echo -e `date`: \\t "DR server is reachable" >>... (5 Replies)
Discussion started by: Mr. Zer0
5 Replies

7. Shell Programming and Scripting

Help on shell script conditional execution when CPU Idle > 60%

I need a shell script that will monitor a few conditions and not execute until the these conditions are met. The problem I'm having is that I can not perform a database snapshot (backup) of a sybaseIQ database unless the CPU Status Idle % is above 60% or the snapshot (backup) fails. If... (2 Replies)
Discussion started by: pancona99
2 Replies

8. Shell Programming and Scripting

unix script for conditional execution

Below is my shell script. I am trying to execute two different BTEQ scripts depending on the day of the week. So on a saturday I will execute a certain BTEQ script and on other weekdays I will run the other script. #!/bin/ksh dt=`date +"%a"` if then bteq > final_output <<- EOF .run... (3 Replies)
Discussion started by: Mihirjani
3 Replies

9. Shell Programming and Scripting

Conditional execution and parallel jobs

how can i process jobs parallel with conditions below. Script1.ksh Script2.ksh Script3.ksh Script4.ksh Script5.ksh Script6.ksh Script7.ksh Script8.ksh Script9.ksh Script10.ksh After successful completion of Script1.ksh I need to run Script7.ksh. After successful... (4 Replies)
Discussion started by: ford2020
4 Replies

10. Shell Programming and Scripting

Conditional Date Script

I am learning Unix for the first time. I am playing around with my default profile file to add some script in the KSH. The time format is GMT and I am in eastern time zone. I am trying to script some greetings based upon the time of day using the IF/ELIF conditions. I am getting errors. I have... (2 Replies)
Discussion started by: cpd259
2 Replies
Login or Register to Ask a Question