debug this script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting debug this script
# 1  
Old 07-03-2008
Question debug this script

Code:
echo "input time in hhmmss"
read $st
h=`echo $st | cut -c1-2`
min=`echo $st | cut -c3-4`
s=`echo $st | cut -c5-6`
echo "input  time in hhmmss"
read $end
h1=`echo $end | cut -c1-2`
min1=`echo $end | cut -c3-4`
s1=`echo $end | cut -c5-6`
x= `expr  $h /* 60 + $min`
y= `expr  $h1 /* 60 + $min1`
z= `expr  $y - $x`
for i in `seq 1 $z`
do
cat test | grep "$h$min" >> /home/barmecha/file1
$min=`expr $min + 1`
if test [ $min -eq 60 ]
then
$h=`expr $h + 1`
fi
done

this is a script to extract data from a logfile for a particular date and time but gives some err in line no. 11,12,13,14 i guess it has some problem with expr command and seq.

Last edited by radoulov; 07-03-2008 at 06:52 AM.. Reason: please use code tags
# 2  
Old 07-03-2008
Quote:
x= `expr $h /* 60 + $min`
y= `expr $h1 /* 60 + $min1`
z= `expr $y - $x`
Remove all spaces.
# 3  
Old 07-03-2008
it doesn,t work even then also......
# 4  
Old 07-04-2008
Code:
x= `expr  $h /* 60 + $min`
y= `expr  $h1 /* 60 + $min1`
z= `expr  $y - $x`

Remove the spaces that follow the = and change / to \.
# 5  
Old 07-04-2008
Quote:
Originally Posted by abhishek27
Code:
echo "input time in hhmmss"
read $st
h=`echo $st | cut -c1-2`
min=`echo $st | cut -c3-4`
s=`echo $st | cut -c5-6`
echo "input  time in hhmmss"
read $end
h1=`echo $end | cut -c1-2`
min1=`echo $end | cut -c3-4`
s1=`echo $end | cut -c5-6`
x= `expr  $h /* 60 + $min`
y= `expr  $h1 /* 60 + $min1`
z= `expr  $y - $x`
for i in `seq 1 $z`
do
cat test | grep "$h$min" >> /home/barmecha/file1
$min=`expr $min + 1`
if test [ $min -eq 60 ]
then
$h=`expr $h + 1`
fi
done

this is a script to extract data from a logfile for a particular date and time but gives some err in line no. 11,12,13,14 i guess it has some problem with expr command and seq.
Remove the space after the = and use backslash in place of forward slash.

Thanks
Namish
# 6  
Old 07-04-2008
The arithmentic on the dates will give you grief in the final "grep". Where hours and/or minutes fields are less than value 10, you will then need to convert integers with no leading zeros to strings with leading zeros.
If your intention is to find all entries in the log between two times (hour and minute on the same day) inclusive, the value of $z needs to be incremented by one.
The seconds fields ($s and $s1) appear to be surplus - the script as presented only needs the start and end times in hours and minutes.
I guess that "seq" is a program or enhanced shell function to generate numbers in a range. It is not a Bourne or Korn shell function. Beware that you could easily generate a command line which is too long by this method.

Alternative?
You could restructure the script to not do arithmetic on dates. Consider this simple example script "test2.sh" to process file "test2.txt" to extract lines between 0201 and 0203 inclusive using only character strings:

=======
test2.txt
=======
0101
0102
0103
0201
0202
0203
0301
0302
0303

======
test2.sh
======
cat test2.txt|while read MMDD
do
if [ "${MMDD}" -ge "0201" -a "${MMDD}" -le "0203" ]
then
echo "${MMDD}"
fi
done

=======
Execution
=======
# . ./test2.sh
0201
0202
0203


This method still needs enhancement to prevent false matches from grep when there is more than the 4 characters on a line! The exact layout of the logfile records and the position of the date on each line will dictate how write a script to do this match.
# 7  
Old 07-07-2008
namish thanks for ur contribution....
the for loop in the above code also have some problem in it..plz check it..
try while loop instead and if it works ...revert back it to me
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Ubuntu

Debug script

How can I debug this script? I want to know what it is doing or not doing? #!/bin/bash # # if ; then # Do the thing you want before suspend here echo "we are suspending." > /tmp/systemd_suspend_test.txt elif ; then # Do the thing you want after resume here echo "and we are... (21 Replies)
Discussion started by: drew77
21 Replies

2. Shell Programming and Scripting

Debug perl script

Hi, I am trying to get squid up and running using a redirector process, and every time I try to load a web page, squid fails miserably. Can some one with perl and squid knowledge take a look at these codes and tell if something is wrong here. #!/usr/bin/perl # $| = 1; @endings = qw/... (0 Replies)
Discussion started by: jamie_123
0 Replies

3. Shell Programming and Scripting

Debug script already running

Hello, is it possible to debug a script that is already running "on-demand"? Somehow a command like "set -x" but once you've executed the script. And another one to disable debugging? Thank you (0 Replies)
Discussion started by: asanchez
0 Replies

4. Shell Programming and Scripting

Cant debug shell script

Hi I am relatively new in shell scripting Below is the code which i developed but for some reason, it keeps giving me error: /apps/bss/BatchProg/at1/batch/scripts/ksh/TBATLC02.ksh: syntax error at line 41 : `then' unmatched #!/usr/bin/ksh... (4 Replies)
Discussion started by: scripting_newbe
4 Replies

5. Shell Programming and Scripting

Help with debug the script

Hi, I have this script, searches and sets variables, then searches and sets more variables from multiple files. I'd need to debug it a bit. #!/bin/bash egrep $1 `find | grep MAGT` >/tmp/resRA-$$ thread=`sed -n '/{0x/ {s/^.*{0x\(*\).*/\1/p;q}' /tmp/resRA-$$` tag=`sed -n '/Tag=/... (5 Replies)
Discussion started by: Vitoriung
5 Replies

6. Shell Programming and Scripting

Problem with the script, help me debug

Hi, When i run the script ./script.sh sun, this give me no output, it should give me the list of file. If i run the script without the argument it should send me echo inside usage(). What is the problem? please help -Adsi #!/bin/sh ROOT_PATH=/net/icebox/vol/local_images/spins... (2 Replies)
Discussion started by: asirohi
2 Replies

7. Shell Programming and Scripting

If condition error-please debug my script

Hi All, I have a script which is based on calculating current time The script looks like this: whenever i try to run the script it gives me error:Please advice wherther i have made mistake with if condition or with for loop?? The code : set -x #!/usr/bin/ksh set -x... (7 Replies)
Discussion started by: usha rao
7 Replies

8. UNIX for Advanced & Expert Users

How can debug our UNIX shell script?

Hi all, i have two simple questions here... 1. i want to know that how to debug the UNIX shell script? 2. is there any way to handling the exception in UNIX shell script like oracle exception handling? Please provide me those details it would be great help/ Thanks and Regards, MPS... (3 Replies)
Discussion started by: psiva_arul
3 Replies

9. Shell Programming and Scripting

How to debug the awk script

Hi, How can I debug an awk script? I know that set -x can be used to debug a script. But this will not suite for awk scripts. Can anyone help me? Thanks in advance, Chella (2 Replies)
Discussion started by: chella
2 Replies

10. Shell Programming and Scripting

Debug an Awk Script

I would like to extract the following fields from the text file attached. I copied the contents from a pdf file and pasted them into the text file so I can use awk to extract them. The layout is as listed below. name1,name2,name3,name4,Title,designation,nationality,dob, national ... (1 Reply)
Discussion started by: mboro
1 Replies
Login or Register to Ask a Question