Please explain what this code is doing


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Please explain what this code is doing
# 1  
Old 07-15-2010
Please explain what this code is doing

Hi,

Pls explain me what the below code is doing. specially meaning if -a while calling test function-


Code:
case $1 in
1) beg_dt=01; end_dt=07 ;;
2) beg_dt=08; end_dt=14 ;;
3)  beg_dt=15; end_dt=21 ;;
4) beg_dt=22; end_dt=28 ;;
5) beg_dt=29; end_dt=31  ;;
esac test \( `date +%w` -eq $2 -a `date +%d` -ge $beg_dt -a `date +%d` -le $end_dt  \)
RC=$?
exit $RC


Thanks,
Shailesh

Moderator's Comments:
Mod Comment Code tags, please
# 2  
Old 07-15-2010
Quote:
esac test \( `date +%w` -eq $2 -a `date +%d` -ge $beg_dt -a `date +%d` -le $end_dt \)
The above line is a syntax error. Should be two lines.
Code:
esac
test \( `date +%w` -eq $2 -a `date +%d` -ge $beg_dt -a `date +%d` -le $end_dt  \)[/QUOTE]

The script takes two mandatory parameters and reurns an exit status of zero if all the criteria in the "test" match.
$1 is some sort of week number (1-5) dividing the month into 7-day periods starting on the first of the month. The script will misbehave with values outside this range.
$2 is a day-of-week number in unix form (0-6 where 0 is Sunday).


The purpose of the script is a bit of a mystery because "date +%w" is a day-of-the-week not week-number-in the month.
# 3  
Old 07-15-2010
What is the purpose of -a in code?
# 4  
Old 07-15-2010
It is the logical AND operator. See "man test" (though it is usually implemented in the shell).
In your example all three conditions must be true for the result of the whole "test" to be true.

The condition can be paraphrased in this syntactically incorrect way:
Code:
((date +%w` -eq $2) AND (`date +%d` -ge $beg_dt) AND (`date +%d` -le $end_dt))

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

can you explain this sed code?

can anyone please explain this code? sed ':a;N;$!ba;s/]\n//g' file it replaces lines ending with "]" and concatenates with the next line so that line1] line2 becomes line1line2 i don't understand this part: :a;N;$!ba; I have noted that I can replace "a" with any letter: ... (1 Reply)
Discussion started by: locoroco
1 Replies

2. Shell Programming and Scripting

Please explain what this Awk code is doing

Hi Guys, Please help me, I am new to programming and I don’t understand what some parts of this code are doing. I have comments on the parts I know, please help if my understanding of the code is not correct and also help with parts with questions. awk ' { gsub( ">",... (1 Reply)
Discussion started by: James_Owen
1 Replies

3. 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

4. Shell Programming and Scripting

Can someone explain the 2 lines of code?

I have something like in the script. Can anyone explain what does the sort command does and followed by the sed sort -r -k3.7,3 -k3.1,3 -k3.4,3 -t: $dir"abc_"$x"_parsed" | sed -e 's/\(\)\(\{3\}\)/\1,\2/2' -e 's/\/2,00/\/200/' The file abc_"$x"_parsed contains something like below ... (7 Replies)
Discussion started by: Muthuraj K
7 Replies

5. Shell Programming and Scripting

Explain SED code

Hi, Can anyone pls explain me the below SED code in detail. sed -e :a -e '$!N;s/\n//;ta' -e P -e D When this code is executed with a file(has 1lac records), it is taking very long time to process. So I wanted to modify this SED code with equivalant AWK code. Thanks, Sri (1 Reply)
Discussion started by: srilaxmi
1 Replies

6. Programming

Explain a block of code:

Hi, I have this block in a code and I need to know it's meaning: bool selectEvents = config.get("selectEvents",false); if (selectEvents) { ifstream in("events"); while (in) { int run, evt; in >> run >> evt; if (in.eof()) break; ... (5 Replies)
Discussion started by: eager2no
5 Replies

7. Shell Programming and Scripting

can any one explain the meaning of the below code ?

while getopts :g:l:h: KEY $* do case $KEY in g) NAME=$OPTARG ;; l) LAB=$OPTARG ;; h) HD=$OPTARG ;; *) echo "Illegal option: $OPTARG" echo "$usage" exitStatus=1 exitGrace esac done (2 Replies)
Discussion started by: santosh1234
2 Replies

8. Shell Programming and Scripting

Can any one explain what this code will do

ccc_con,CCC_CON,0 Above is the input for this code #!/usr/bin/bash my_path=`dirname $0` T_table=$1 S_table=$2 P_table=$3 #Star new code while read ${my_path}/arch_table_list.txt { awk -F "," '{print $1}' ${my_path}/arch_table_list.txt ${S_table} awk -F "," '{print... (1 Reply)
Discussion started by: scorp_rahul23
1 Replies

9. UNIX for Advanced & Expert Users

explain the code

Hi , Can anyone explains what does the below highlighted statements means: # Set environment variables . ${0%/*}/wrkenv.sh jobName_sh=${0##*/} jobName=${jobName_sh%.*} Thanks, Sri (1 Reply)
Discussion started by: srilaxmi
1 Replies

10. UNIX for Dummies Questions & Answers

could someone explain this code

hey peeps could someone explain what this part of the code means: 'if echo $* | grep -q' $i '|| thanks tHe_nEw_GuY (2 Replies)
Discussion started by: the_new_guy
2 Replies
Login or Register to Ask a Question