Can you please explain what this script does?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Can you please explain what this script does?
# 1  
Old 09-17-2010
Can you please explain what this script does?

I am trying to figure out what this script does. Can someone help?


Code:
delt_file=`diff /transfer/adx/tey_header.txt /transfer/adx/tey_header_yesterdy.txt`
if [[ $delt_file == "" ]] ; then
touch /transfer/adx/lrstb028_ctl2.ctl
else
if test -f "/transfer/adx/lrstb028_ctl2_2.ctl" ; then
touch /transfer/adx/lrstb028_ctl2.ctl
fi
fi


Last edited by Scott; 09-17-2010 at 05:04 PM.. Reason: Added CODE tags, removed formatting
# 2  
Old 09-17-2010
Quote:
Originally Posted by chamajid
I am trying to figure out what this script does. Can someone help?
Code:
delt_file=`diff /transfer/adx/tey_header.txt /transfer/adx/tey_header_yesterdy.txt`

Compares tey_header.txt to tey_header_yesterday.txt. If there's any differences between them, diff will output text describing it. If not, there will be no output. Because of the backticks, the output is saved into the variable delt_file.

I don't see that they actually use the output they saved here, but this may not be the whole script, yes?

Code:
if [[ $delt_file == "" ]] ; then
        touch /transfer/adx/lrstb028_ctl2.ctl
else
        if test -f "/transfer/adx/lrstb028_ctl2_2.ctl" ; then
                touch /transfer/adx/lrstb028_ctl2.ctl
        fi
fi

If delt_file is empty -- as in, no changes -- update the timestamp on /transfer/adx/lrstb028_ctl2.ctl to today. That's what touch does, alters the timestamp without otherwise altering the file.

If delt_file is not empty, and /transfer/adx/lrstb028_ctl2_2.ctl exists, update its timestamp instead.

I'd rewrite it a little as:

Code:
delt_file=`diff /transfer/adx/tey_header.txt /transfer/adx/tey_header_yesterdy.txt`
if [[ "$delt_file" == "" ]] ; then
        touch /transfer/adx/lrstb028_ctl2.ctl
else
        [ -f "/transfer/adx/lrstb028_ctl2_2.ctl" ] && touch /transfer/adx/lrstb028_ctl2.ctl
fi

...still keeps the output in delt_file in case they need it, but doesn't potentially break if its output contains spaces or newlines, and doesn't need to nest two if statements inside each other.

And if they don't even use diff's output anywhere this can boil down to

Code:
# Check if the files differ.  Will return success on no change, error on change.
if diff /transfer/adx/tey_header.txt /transfer/adx/tey_header_yesterdy.txt > /dev/null
then
        # No change.  Update the timestamp on lrstb028_ctl2.ctl.
        touch /transfer/adx/lrstb028_ctl2.ctl
# The files differ.  Does /transfer/adx/lrstb028_ctl2_2.ctl exist?
elif [ -f "/transfer/adx/lrstb028_ctl2_2.ctl" ]
then
        # Update the timestamp on /transfer/adx/lrstb028_ctl2.ctl
        touch /transfer/adx/lrstb028_ctl2.ctl
fi


Last edited by Corona688; 09-17-2010 at 06:28 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

can someone explain shift command in script?

think using shift would help me finish my script but cant get it work without your help. would appreciate if you give me a example with shift & counter in the same script so I can later work on that to my one. Thanks and Good Luck! (1 Reply)
Discussion started by: me.
1 Replies

2. Shell Programming and Scripting

Explain this shell script code.

Hi i am new to shell script can any one please explain me the code below which is written for execution of python scripts which are located in same folder. please explain the code line by line ls *.py > xx while do read myline || break python $myline done<xx Thanks Mukthyar.... (1 Reply)
Discussion started by: mukthar1255
1 Replies

3. Shell Programming and Scripting

explain while loop in ksh shell script

#!/bin/ksh log=ABCl log=EFG log=HIJ i=0 while <------ what is the meaning of ($i - lt 3) do print ${log} (( i=i+1 )) done (1 Reply)
Discussion started by: Bperl1967
1 Replies

4. Shell Programming and Scripting

Explain this AWK script plz

Hi frnds, one my frnds has given resolution for my problem as below. it working great , but i couldnt understand somethings in the script. Why ++ operator after the function calling. how these each block working. will each run for each input line sequencially or one block for all the lines... (9 Replies)
Discussion started by: Gopal_Engg
9 Replies

5. Shell Programming and Scripting

Can help me explain this script?

Hi expert Can help me explain this script? myFile="./File" myCell="" while do read myCell || break echo "" echo "***************************" echo "$myCell" echo "***************************" done < $myFile this is ksh. Can help me... (1 Reply)
Discussion started by: vincyoxy
1 Replies

6. Shell Programming and Scripting

need some explain about this script

Dear Member, i need help in this script filename_DD_MM_YYYY_HHMMSS.log this is the log file format i need to split this name to three variables 1 variables contain filename 2 variables contain _DD_MM_YYY_ 3 variables contains HHMMSS ... (7 Replies)
Discussion started by: dellsh
7 Replies

7. Solaris

Pl explain the shell script code

if then ROLLBACK=1 ; elif then echo "Nothing to install!" ; echo "Exiting." ; exit 0; Plz explaing what is the ${1:-0} in if loop?:) (3 Replies)
Discussion started by: ysrikanth
3 Replies

8. Shell Programming and Scripting

Can someone explain a bubble sort in Krn script to me?

See topic. I need to understand how it works before i start to work on a program anyone have any resources or the time to explain it thanks. (5 Replies)
Discussion started by: bluesilo
5 Replies

9. Shell Programming and Scripting

explain me this shell script ...

currentSid=${TWO_TASK:-$ORACLE_SID} echo $currentSid this script returns value of ORACLE_SID but what i am not getting is what is ":-" doing ?? (1 Reply)
Discussion started by: zedex
1 Replies

10. Shell Programming and Scripting

need help to explain script

dear all, can anyone help me to explain all the commands in the .profile bourne shell below ? really appreciate ur help. PLEASE. 1 2 # @(#) $Revision: 72.2 $ 3 4 # Default user .profile file (/usr/bin/sh initialization). 5 6 # Set up the terminal: 7 if 8 then 9 eval ` tset -s -Q -m... (1 Reply)
Discussion started by: ykchua
1 Replies
Login or Register to Ask a Question