Shell script has to run until the status value is updated


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell script has to run until the status value is updated
# 1  
Old 04-01-2016
Shell script has to run until the status value is updated

Hi All,

Need some help like how to exit from the script after updating the column in data base.

Code:
db2 connect to DB
STATUS=$(db2 "SELECT STATUS FROM XYZ )
echo $STATUS

Initially the status value will be '4' or 'NOT YET RUN'.

The Shell script has to run until the status value is updated with '0' in data base

Last edited by Scrutinizer; 04-01-2016 at 04:16 AM.. Reason: code tags
# 2  
Old 04-01-2016
Example forever loop and if status is 0, then break the loop. Case is nice command to use string comparing.

Code:
#!/bin/bash
# or ksh
while true
do
      # your db code here
      # after that:
      case "$STATUS" in
            0) break ;;   # break loop
            4) echo "status 4" ;;
            NOT*YET*RUN) echo "status not yet" ;;
            #....
             *)  echo "other status $STATUS" ;;
       esac
       sleep 10  # sleep 10 sec and poll again
done
echo "Done"

This User Gave Thanks to kshji For This Post:
# 3  
Old 04-01-2016
You might want to run db2 -x SELECT ... to get rid of the heading and 1 record(s) selected.
This User Gave Thanks to hergp For This Post:
# 4  
Old 04-05-2016
Thanks hergp. I tried this code but facing some issue.

if i hard code like status=0 or with some other values (4,Not Yet Run) the script is working fine .But if i am pulling the status value from db, every time it is moving in to other status for all the values 0,4, and Not yet run.

Kindly suggest.
# 5  
Old 04-05-2016
I am not sure, if I understand you correctly. Do you mean the SQL SELECT statement or the case-construct afterwards? Can you give an example?
This User Gave Thanks to hergp For This Post:
# 6  
Old 04-05-2016
Some thing like this.

If I use Status=0 in the script no issue. It is immediately coming out of the loop because of break condition in the case statement

But if I fetch Status value from DB like below.
Status= db2 " Select Status from X table" then it is returning "Other Status 0" from the case statement which is wrong. It has to immediately come out of the loop. But its not happening

---------- Post updated at 06:47 AM ---------- Previous update was at 06:34 AM ----------

Currently the status value is '0' . But if I ran the below script it is returning "Other Status 0"

Code:
while true
do
db2 connect 
STATUS=$(db2 -x "SELECT JOB_STATUS FROM X WHERE NAME='Test1'")
# after that:
case "$STATUS" in
'0') break ;; # break loop
'4') echo "status 4" ;;
'NOT*YET*RUN') echo "Job Running" ;;
#....
*) echo "other status $STATUS" ;;
esac
sleep 10 # sleep 10 sec and poll again
done
echo "Done"


Last edited by Franklin52; 04-05-2016 at 10:07 AM.. Reason: Please use code tags
# 7  
Old 04-05-2016
Looks like the output of the select statement is not just 0, but something like 0.

If the status code in the database does not contain blanks, you just could remove the quotes from the case statement
Code:
case $STATUS in

which would effectively strip leading and trailing blanks from the status code.

Otherwise change the patterns within the case statement to include optional blanks.
Code:
case "$STATUS" in
       *( )0*( )) break ;;
       ...


Last edited by hergp; 04-05-2016 at 09:03 AM..
This User Gave Thanks to hergp For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script run in a case statement call to run a php file, also Perl

Linux System having all Perl, Python, PHP (and Ruby) installed From a Shell script, can call a Perl, Python, PHP (or Ruby ?) file eg eg a Shell script run in a case statement call to run a php file, also Perl or/and Python file??? Like #!/usr/bin/bash .... .... case $INPUT_STRING... (1 Reply)
Discussion started by: hoyanet
1 Replies

2. Shell Programming and Scripting

Inner script run and its exit status

Main Script #!/bin/ksh echo "Maimn script" ./clocal/www/web-data/WAS/WebSphere7/scripts/DealerLocator/Scripts/secondscript.ksh echo "$? = status" Sdecond Script #!/bin/ksh echo "In second SCript" exit 1 Output: Maimn script ./testmain.ksh:... (4 Replies)
Discussion started by: dineshaila
4 Replies

3. Shell Programming and Scripting

Shell Script for continuously checking status of a another script running in background, and immedia

Hi, I want to write a script which continuously checking status of a script running in background by nohup command. And if same script is not running then immediately start the script...please help.. i am using below command to run script nohup system_traps.sh & but in some... (9 Replies)
Discussion started by: ketanraut
9 Replies

4. Shell Programming and Scripting

Weird Exit Status of shell script

I have a script named check which will read the content of a file and check wether those files exist in the current directory. If so it will have the exit status of 0, otherwise it will have 1. check script: #!/bin/bash if ; then #Check there is enough command line parameters. exit 1... (2 Replies)
Discussion started by: Ray Sun
2 Replies

5. Shell Programming and Scripting

Help with Email Status shell script

I have written a bash script to to sort the data from logs i need some help in printing the outputs , i dont have much ideas in bah scripting. Sample script ----------------------- #!/bin/bash a=`date | cut -d " " -f2,2,3` cat /var/log/maillog |grep "$a" |grep -E -e 'deferred|bounced'... (9 Replies)
Discussion started by: unimaxlin
9 Replies

6. UNIX for Dummies Questions & Answers

Job Status for running shell script

Hello, I am running a shell script whose execution often takes several hours to complete. Is there way I can get some kind of status update as the job is running? Something as simple as the start and the current time stamp. Thanks, Gussi (2 Replies)
Discussion started by: Gussifinknottle
2 Replies

7. Shell Programming and Scripting

return status after run the shell script

Hello, I wanted to delete all files which are placed 14 days back. Here is my below script. My script works very well and it deletes all files 14 days back. I wanted to display message incase if the delete script is not successful. The below script returns always successful. But the directory... (6 Replies)
Discussion started by: govindts
6 Replies

8. Shell Programming and Scripting

trigger a script based on the run status of another scipt

Im a newbee.. I have a script which runs few times daily. I want to write another script which should pick up the latest log generated from the last run of the first job and trigger a thrid script if the first script runs successfuly. Please help... Cheers (1 Reply)
Discussion started by: Athena
1 Replies

9. Shell Programming and Scripting

checking exit status of a shell script

Hi, I have tried with the following code; if ;then echo "Failure." else echo "Success." fi to test the exit status of the test.ksh shell script. But whatever is the exit status of the test.ksh shell script Failure. is always printed. Please help. regards, Dipankar. (2 Replies)
Discussion started by: kdipankar
2 Replies
Login or Register to Ask a Question