I'm writing a shell script in KSH, where I want to store the filename, total record count and actual record count of all the source files. The source files reside in 4 different sub-folders under the same root folder.
Below is code:
I'm getting output till the folder names, after that getting "expr: syntax error", for number of source files I've.
Surprisingly among these errors only once I'm getting correct count outputs for the case, where the source folder contains only single data file.
I've done the coding in vi editor and have not used MS editor.
I wanted to add : The while loop puzzles me...
What is expected?
I dont get your logic: Once your are reading A (yes 1!) filename what is the point to go through all this strange calculation and no storing of $filename (???), I may be (quite sure..) very tired today but I am missing something there...
Thanks, you identified the right point.
The problem was with -
It worked correctly with $filename as you suggested.
Then I've modified that portion as below -
It's now working properly.
But I've few doubts, would be great if you could answer -
1. The usage of curly braces {} and " " in displaying variable value - when we use which one?
2. use of back quote in value assignment to a variable and with expr command. For eg, the way I'm assigning tot_rec_count.
1. The usage of curly braces {} and " " in displaying variable value - when we use which one?
echo "${filename}"
I have got into the habit of always putting quotes round string variables and strings because it prevents so many silly errors when a value contains spaces.
I have also got into the habit of using curly braces even when they are not strictly necessary because it makes the variable name totally unambiguous.
It also prevents errors like this:
2. use of back quote in value assignment to a variable and with expr command. For eg, the way I'm assigning tot_rec_count.
Quote:
act_rec_count=`expr ${tot_rec_count} - 1`
In ksh and Posix Shell whatever is between backticks is to be executed.
This more modern syntax is preferred. $((arithmetic)).
Also, I wouldn't bother with an array.
Quote:
set -A folders horizon mysteryshopper rcc reference
echo ${folders[@]}
for i in ${folders[@]}
This works the same and imho is easier to read and easier to type:
---------- Post updated at 10:25 AM ---------- Previous update was at 10:23 AM ----------
The while loop reads each filename and then counts the number of records in each of them. As the files have a header record, the count is decreased by 1 to get the actual number of records.
Hi,
I tried to look up the issue i'm experiencing, but i'm confused what's wrong with my script.
After executing the script I'm getting the following error
expr: non-numeric argument
syntax error on line 1, teletype
After some research, it seems that the problem relates to bc.
I have... (1 Reply)
This really puzzles me. The following code gives me the error 'expr: syntax error' when I try to do multi-line comment using here document
<<EOF
echo "Sum is: `expr $1 + $2`"
EOF
Even if I explicitly comment out the line containing the expr using "#", the error message would still exist... (3 Replies)
Hi All,
As per my knowledge in unix, my code looks fine. But still I am getting error (expr:syntax error). Please help me to resolve this error.
Script :
PRE_LBNO=0
PRE_DATE=0
TOT_PAY=0
TOT_REM=0
TOTAL=1
for Record_Type in `cut -c 1 Inputt.dat`
do
if ;
then
CURR_LBNO=` cut -c... (6 Replies)
Hi All,
This is a piece of code from one of my scripts:
t1=`cat temp3.21447 | grep WEALTHTOUC_TRANS_20100409_233127.txt.txt.TRG | awk '{print $3}' | cut -c1-5`
t2=`cat temp3.21447 | grep WEALTHTOUC_TRANS_20100409_233127.txt.txt.TRG | awk '{print $5}' | cut -c1-5`
#t1=23:43... (5 Replies)
hello to everyone,
i am writing a shell script in unix and i use the following command:
lnum= cut -f 1 -d : aa
passline=`expr $lnum + 1`
echo "$passline"
with the following command i get the value that is stored in the first field of the file "aa" and i save it in the variable "lnum". i am... (2 Replies)
Hi Guys,
THis is the first time am using the expr expression.
I like to know how to write the expression a=(b\100)*a.
THis works fine if it gives without a bracket. the bracket should be present as i wanted to define the order of execution.
Help me out.
Thanks for your help in advance.... (2 Replies)
I know I asked a similar question but I want to know if there is a regular expression existing that with a korn shell cmd, finds any timestamp data records in a file where it is greater then a timestamp in a shell variable ?
something like :
grep all records where it has a timestamp >... (5 Replies)
I am trying to run the script bellow but its given me "syntax error at line 20 :'done' unexpected." error message"
can someone check to see if the script is ok? and correct me pls.
Today is my first day with scripting.
Gurus should pls help out
#!/bin/ksh
# Purpose: Check to see if file... (3 Replies)
I found below script to check whether the variable is a digit in ksh.
############################
#!/bin/ksh
REPLY="3f"
if ]*\)'` != ${REPLY} && "${REPLY}" != "0" ]]
then
print "is digit\n"
else
print "not digit\n"
fi
############################
Although it works fine, but... (6 Replies)
i want to get a substring from a string and used such shell script:
var_year=`expr substr "07132006" 5 4`
echo $var_year
but i got such error message: expr: syntax error. why?
Note: Kshell used on solaris 8. :confused: (5 Replies)