If condition


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting If condition
# 1  
Old 12-31-2008
Bug If condition

here is my script
########
#! /bin/sh
export PATH=$PATH:/opt/mysql/bin/
#echo $PATH
echo $LD_LIBRARY_PATH
USER="root"
PASS="xyz"
DB="sme"
DATE=$(date +%d%b%y_%k.%M.%S)
#DATE=`date +%y-%d-%m`
if
mysqldump -u $USER -p$PASS $DB | gzip -9>/home/backup1/today_sme-$DATE.sql.gz
then
find /home/backup1 -mtime +0 -exec rm -f {} \;
echo "done"
else
echo "not done"
fi
########

I want If mysqldump -u $USER -p$PASS $DB | gzip -9>/home/backup1/today_sme-$DATE.sql.gz
executes successfully then only
find /home/backup1 -mtime +0 -exec rm -f {} \;
execute
else echo "not done" execute
# 2  
Old 12-31-2008
Actually this is a pipeline consisting of two components (mysqldump and gzip). The success of this pipeline depends in the success of the two programs; either mysqldump may fail or gzip (or both ofcourse). It's better to rewrite these lines as follows:

Code:
set -o pipefail
mysqldump -u $USER -p$PASS $DB | gzip -9>/home/backup1/today_sme-$DATE.sql.gz
if [ $? -ne 0 ]; then
    blabla
else
    blabla
fi

The pipefail bash option is controlling the exit status of a pipeline (read the manual pages for bash). Of course the two components must be written correctly from their authors (exiting with non zero exit statuses when failures occur).
# 3  
Old 01-12-2009
Bug

Quote:
Originally Posted by Panos1962
Actually this is a pipeline consisting of two components (mysqldump and gzip). The success of this pipeline depends in the success of the two programs; either mysqldump may fail or gzip (or both ofcourse). It's better to rewrite these lines as follows:

Code:
set -o pipefail
mysqldump -u $USER -p$PASS $DB | gzip -9>/home/backup1/today_sme-$DATE.sql.gz
if [ $? -ne 0 ]; then
    blabla
else
    blabla
fi

The pipefail bash option is controlling the exit status of a pipeline (read the manual pages for bash). Of course the two components must be written correctly from their authors (exiting with non zero exit statuses when failures occur).
I changes my script as follow

############################################################
#! /bin/sh
export PATH=$PATH:/opt/mysql/bin/
#echo $PATH
echo $LD_LIBRARY_PATH
USER="root"
PASS="XYZ"
DB="sme"
DATE=$(date +%d%b%y_%k.%M.%S)
#DATE=`date +%y-%d-%m'
set -o pipefail
mysqldump -u $USER -p$PASS $DB | gzip -9>/home/backup1/today_sme-$DATE.sql.gz;
if[$? -ne 0]; then
find /home/backup1/ -mtime +4 -exec rm -f {} \;
exit 0
else
echo "done"
exit 1
fi

#############################################################

but while executing it shows error

bck_script.sh: line 19: syntax error near unexpected token `then'
bck_script.sh: line 19: `if[$? -ne 0]; then '
# 4  
Old 01-12-2009
You must use spaces in brackets:

if [ $? -ne 0 ]; then
# 5  
Old 01-12-2009
Bug

Thanks
# 6  
Old 01-12-2009
Leave a space after between if and bracket too!

if [ $? -ne 0 ]; then
# 7  
Old 01-12-2009
Bug

Quote:
Originally Posted by Panos1962
Leave a space after between if and bracket too!

if [ $? -ne 0 ]; then
I changes

set -o pipefail
ysqldump -u $USER -p$PASS $DB | gzip -9>/home/backup1/today_sme-$DATE.sql.gz;
if [ $? -ne 0 ]; then
echo "done"
find /home/backup1/ -mtime +4 -exec rm -f {} \;
exit 0
else
echo "not done"
exit 1
fi

still it executes done while mysqldump(which changes to sqldump for test purpose) not executing
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with if condition

o/p of my command is given below My requirement is if Pnumber is 0 then stabilization.Build.2013 else stabilization.PBuild.2013.3 (11 Replies)
Discussion started by: nikhil jain
11 Replies

2. UNIX for Dummies Questions & Answers

IF [ condition ] help

Hi all Unix newbie - please be gentle Am modifying an existing script to error trap a variable with a length of 0 #!/bin/bash ipfile='/var/data/bin/ipaddress' ] && ipold="$(< "$ipfile" )" ipnew="$( wget -q -O - checkip.dyndns.org | sed -e 's/.*Current IP Address: //;s/<.*$//' )" #... (6 Replies)
Discussion started by: CRChamberlain
6 Replies

3. Shell Programming and Scripting

If condition return 0 even when it fails to satisfy te condition

HI My doubt may be basic one but I need to get it clarified.. When i use "if" condition that checks for many AND, OR logical conditions like if ]; then return 0 fi Even the if condition fails it returns as zero.. Any clue.. But if i add else condition like if ]; ... (2 Replies)
Discussion started by: Priya Amaresh
2 Replies

4. Shell Programming and Scripting

if condition

if chr1:109457160 1 109457160 99.1735537190083 + chr1:109457233 1 109457233 99.1735537190083 - chr1:109457614 1 109457614 99.1735537190083 + chr1:109457618 1 109457618 100 + chr1:109457943 1 109457943 100 - chr1:109458224 1 109458224 99.1735537190083 - file1.txt If 6th column in... (3 Replies)
Discussion started by: johnkim0806
3 Replies

5. Shell Programming and Scripting

redirect stdout echo command in condition A run in condition B

hi, I have some problems in my simple script about the redirect echo stdout command inside a condition. Why is the echo command inside the elif still execute in the else command Here are my simple script After check on the two diff output the echo stdout redirect is present in two diff... (3 Replies)
Discussion started by: jao_madn
3 Replies

6. HP-UX

Difference between [condition] and [[condition]] and ((condition)) when used with if condition

Executed the following if conditions .. and got different results . only (( )) gave correct o/p with all scenarios . Can anybody please let me know what is the difference between and ] and ((condition)) when used with if condition. And why each condition gave different result. 1.... (2 Replies)
Discussion started by: soumyabubun
2 Replies

7. Shell Programming and Scripting

If Condition

Hi, I am trying to execute this command, but is it not working, says "`;' unexpected" eval $lgrep $SAM_CMD ; if ; then ; echo "No Error" ; fi What i want is, return the command output, if it is non zero, say "No Error". Thanks, John. (21 Replies)
Discussion started by: john_prince
21 Replies

8. Shell Programming and Scripting

if..else condition

i have a paramter data_date in which i am passing a string value.i want to find out another paramter file_date from this.the logic is given below if day of data_date = sunday or monday then file_date=data_date-1 else file_date=data_date-2 i am passing data_date as 20061027. how can i... (3 Replies)
Discussion started by: dr46014
3 Replies

9. Shell Programming and Scripting

if condition

Hi friends, :) In a shell script i found the following if condition. echo -n "Which version of $1 do you want to restore ('0' to quit)? : " read desired if ${desired:=1} -ge $index ] ; then echo "$0: Restore canceled by user: index value too big." >&2 exit 1 fi Can... (1 Reply)
Discussion started by: ravi raj kumar
1 Replies

10. Shell Programming and Scripting

if condition ...

i have following if condition if above statement is case sensitive.....what is syntax if i have to make above comparision case insensetive (4 Replies)
Discussion started by: mahabunta
4 Replies
Login or Register to Ask a Question