Shell script using Diff


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell script using Diff
# 1  
Old 04-23-2010
Shell script using Diff

Hello - I have a small diff script that checks 2 directories. It reports the difference in count such as wc -l, and also names the different files.

How should I get "ERROR: diff found . (host)" - when it actually finds a diff?


This is how I have written:

Code:
#!/bin/bash

            DIFF=$(diff -r /home/student/bin/dir1 /home/student/bin/dir2 | grep Only | wc -l)
            DIFF2=$(diff -r /home/student/bin/dir1 /home/student/bin/dir2 | grep Only)
                        echo "The file count difference between master folder and CE-B-CM\D folder is:
${DIFF}"
            
            
            echo "The names of the different files and their paths are:
${DIFF2}."

            echo "####################################################"


Last edited by DallasT; 04-23-2010 at 01:30 PM..
# 2  
Old 05-02-2010
Code:
#!/usr/local/bin/bash

DIFF=$(diff -r /path/to/dir1 /path/to/dir2)

if [[ $DIFF != "" ]]; then
echo "ERROR: diff found. $HOSTNAME"
fi

# 3  
Old 05-02-2010
That is only giving me my own local host name. Not the path to the host where the difference is found and the count...

i use this script, however, I am not able to flag the email subject line to either ERROR or GOOD, have a look:

Code:
#!/bin/bash
# Diff script to be used for file comparisions

DIFF=$(diff -r /home/student/bin/dir1 /home/student/bin/dir2 | wc -l) 
if [ $DIFF -ne 0 ]
then
echo "ERROR: Diff found a diff in total count of this many files: ${DIFF}."
forproblemmail=1
else
echo "No Difference"
fi

DIFF2=$(diff -r /home/student/bin/dir1 /home/student/bin/dir2 | grep Only)
if [ $? -eq 0 ]
then
echo "The names of the different files and their paths are:
${DIFF2}."
forproblemmail=1
else 
echo "No files are different"
fi

#Email Module
if [ $forproblemmail - eq 1 ] ; then
       SUBJECT="ERROR: Problem During Diff"
         else
              SUBJECT="GOOD: Complete Find Files With Success"
fi
# Email To ?
EMAIL="admin@somewhere.com"
# Email text/message
EMAILMESSAGE="/tmp/emailmessage.txt"
# send an email using /bin/mail
mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE


Last edited by DallasT; 05-02-2010 at 11:01 PM..
# 4  
Old 05-03-2010
Is the the space between the "-" and "eq" a typo?

Code:
if [ $forproblemmail - eq 1 ] ; then

# 5  
Old 05-03-2010
Yes! you are right.
# 6  
Old 05-03-2010
Quote:
Originally Posted by DallasT
Yes! you are right.
Not clear if your problem is solved now.Smilie

Was it a typo in your original script?
# 7  
Old 05-03-2010
Actually I am not sure if the way I flagged the error by "forproblemmail=1" , would really flag for the subject line of the email?

Also I am getting this when I run it:

Code:
line 24: [: -eq: unary operator expected

Quote:
Originally Posted by Franklin52
Not clear if your problem is solved now.Smilie

Was it a typo in your original script?

Last edited by DallasT; 05-03-2010 at 10:15 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Howto compare the columns of 2 diff tables of 2 different schemas in UNIX shell script

HI All, I am new to Unix shell scripts.. Could you please post the unix shell script for for the below request., There are two different tables(sample1, sample2) in different schemas(s_schema1, s_schema2). Unix shell script to compare the columns of two different tables of two... (2 Replies)
Discussion started by: Rajkumar Gopal
2 Replies

2. Shell Programming and Scripting

Shell script to compare ,diff and remove betwen 2 files

Hi Friends Need your expertise. Command to check the difference and compare 2 files and remove lines . example File1 is master copy and File2 is a slave copy . whenever i change, add or delete a record in File1 it should update the same in slave copy . Can you guide me how can i accomplish... (3 Replies)
Discussion started by: ajayram_arya
3 Replies

3. Shell Programming and Scripting

serach diff filename in diff location using shell scripting

Hi, I am new to shell scripting. please help me to find out the solution. I need a script where we need to read the text file(consists of all file names) and get the file names one by one and append the date suffix for each file name as 'yyyymmdd' . Then search each file if exists... (1 Reply)
Discussion started by: Lucky123
1 Replies

4. Shell Programming and Scripting

Diff between calling a shell script with ./ and . ./

Hi ALL I have a shell script named setUP in which i am sourcing one variable like source var_name="CLASSPATH". When i call it as ./setUP, it does not set the var_name variable. But when i call it like . ./setUP then var_name is set up. What is the difference between this two calls? ... (2 Replies)
Discussion started by: SasDutta
2 Replies

5. UNIX for Dummies Questions & Answers

Diff between calling a shell script with ./ and . ./

Hi ALL I have a shell script named setUP in which i am sourcing one variable like source var_name="CLASSPATH". When i call it as ./setUP, it does not set the var_name variable. But when i call it like . ./setUP then var_name is set up. What is the difference between this two calls? ... (1 Reply)
Discussion started by: SasDutta
1 Replies

6. Shell Programming and Scripting

Time Diff in shell script

Hi all , i am trying to calculate time difference btw the script execution I am using solaris start_time=`date +%s` sleep 2 end_time=`date +%s` duration=`expr $end_time - $start_time` when i try to subtract i get the error line 13: %s - -time : syntax error: operand expected... (3 Replies)
Discussion started by: posner
3 Replies

7. Shell Programming and Scripting

Process diff command output in a shell script

diff -yta file1 file2 #!/usr/abc/b/bin/perl5.6 | #!/usr/abc/b/bin/perl5.8 Notable thing about above line is "|" appears at 62nd position. When the same line is assigned in a variable in a ksh script, using ss=$(diff -yta file1 file2) it appears as ... (4 Replies)
Discussion started by: bhaliyajalpesh
4 Replies

8. Shell Programming and Scripting

Shell script to manipulate a message count for the same IP @ diff session

I have a file as like below, 10:20:30.45 START 10.20.30.40 10:20:31.46 HELLO 10.20.30.40 10:20:32.46 START 10.20.30.41 10:20:33.44 END 10.20.30.40 10:20:35.44 HELLO 10.20.30.41 10:20:36.56 HELLO 10.20.30.41 10:20:37.78 HELLO 10.20.30.41 10:20:38.99 START 10.20.30.40... (1 Reply)
Discussion started by: gobinath
1 Replies

9. Shell Programming and Scripting

Is there a diff way to exec this shell prg??

Hi, I want to know whether it is possible to to execute the below script like ksh ds.ksh <input file> > <output file> or any other simple way other then ./ The way i'm executing it right now is nawk -f ds.ksh <input file> > <output file>. I need the first format as my ETL tools is... (3 Replies)
Discussion started by: kumarsaravana_s
3 Replies

10. UNIX for Dummies Questions & Answers

shell scripting my own diff command

Hi I would like to run the diff command and recieve a little different output. I am on a linux machine. I am pretty new to shell scripting. So far my idea has shaped up to this, unworking, script. I would like file1: and file2: instead of the usual > or < output you recieve, diff | sed -e ... (4 Replies)
Discussion started by: axcxe
4 Replies
Login or Register to Ask a Question