/usr/local/bin/expr function not working


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting /usr/local/bin/expr function not working
# 1  
Old 03-15-2012
/usr/local/bin/expr function not working

Legends,

I am not able to set "expr" function in ksh script.
Below is the sample code i used, and output is as "Syntax error"
Please help me to come out of it.


Quote:
DATE1="`date -u +%Y`"
DATE2="`date -u +%m%d`"
CurrentDate="$DATE1$DATE2"
print "CurrentDate = $CurrentDate"
cutoffdate=`/usr/local/bin/expr $CurrentDate - 3`
print "cutoffdate = $cutoffdate"
cat /tmp/loadDSdata.tmpl|while read BASENAME
do
Len=`/usr/local/bin/expr length $BASENAME`
Len=`/usr/local/bin/expr $Len + 2`
Len2=`/usr/local/bin/expr $Len + 7`

print "Len = $Len"
print "Len2 = $Len2"

OUTPUT

Quote:
CurrentDate = 20120315
cutoffdate = 20120312
expr: syntax error
expr: syntax error
expr: syntax error
Len =
Len2 =

Last edited by sdosanjh; 03-15-2012 at 06:07 AM..
# 2  
Old 03-15-2012
what is there in /tmp/loadDSdata.tmpl ?

---------- Post updated at 02:53 PM ---------- Previous update was at 02:48 PM ----------

if the BASENAME is numeric then you can try the below

Code:
 
len=$((${#BASENAME}+2))
len=$((${#len}+7))

# 3  
Old 03-15-2012
Code:
cutoffdate=`/usr/local/bin/expr $CurrentDate - 3`

You can't do date arithmetic with expr.
# 4  
Old 03-15-2012
What OS your using..? Maybe you can try as Len=`/usr/local/bin/expr "$BASENAME" : '.*'` instead of length expression.
This User Gave Thanks to michaelrozar17 For This Post:
# 5  
Old 03-15-2012
$BASENAME is not numeric..its say "India"

@Franklin52, but i am getting value in cutoffdate variable

@itkamaraj; in /tmp/loadDSdata.tmpl i have contents like below
Kenya
India

Then it will go to directory search for Kenya_*.csv file and remove.

---------- Post updated at 01:43 AM ---------- Previous update was at 01:42 AM ----------

@michaelrozar17

Thanks dear, that worked.


Quote:
CurrentDate = 20120315
cutoffdate = 20120312
Len = 7
Len2 = 14
---------- Post updated at 01:44 AM ---------- Previous update was at 01:43 AM ----------

Quote:
Originally Posted by michaelrozar17
What OS your using..? Maybe you can try as Len=`/usr/local/bin/expr "$BASENAME" : '.*'` instead of length expression.

IT WORKED Smilie
# 6  
Old 03-15-2012
Quote:
Originally Posted by sdosanjh
@Franklin52, but i am getting value in cutoffdate variable
And what should be the result if you subtract 3 from a date like 20120101?

Code:
20120101 - 3

# 7  
Old 03-15-2012
Quote:
Originally Posted by Franklin52
And what should be the result if you subtract 3 from a date like 20120101?

Code:
20120101 - 3


Right... so it will fail every year for 1st 3 days...?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. BSD

FreeBSD: /usr/bin/ld not looking in /usr/local/lib

I'm not sure if this is the default behavior for the ld command, but it does not seem to be looking in /usr/local/lib for shared libraries. I was trying to compile the latest version of Kanatest from svn. The autorgen.sh script seems to exit without too much trouble: $ ./autogen.sh checking... (2 Replies)
Discussion started by: AntumDeluge
2 Replies

2. Shell Programming and Scripting

Nested if not working with /usr/xpg4/bin/awk

Hi, I am trying to do if inside the If in /usr/xpg4/bin/awk. But I am getting below error : /usr/xpg4/bin/awk -v a="${THREADIDARR }" 'BEGIN {FS="|"; n=split(a,b," "); for(i=1; i<=n; i++) c]=1;} length($3) == 0{ftag == 1{{print}}; length($3) != 0{$3 in c{ftag=1;print;} !$3 in c{ftag=0;}}'... (4 Replies)
Discussion started by: nes
4 Replies

3. Solaris

How to link sed from /usr/bin/sed to /usr/local/bin/sed?

Hi Guys, OS:- Solaris 10 64Bit I have a small query. On one server a user is facing sed command issue. He gets error regarding sed for this location /users/hoy/2999/batch5/bin/internal.sh: /usr/local/bin/sed: not found How ever the sed is actually present at this location on server:-... (13 Replies)
Discussion started by: manalisharmabe
13 Replies

4. Shell Programming and Scripting

Possible to use /usr/bin/watch to call a function?

I want to have a script both define functions and have the ability to run an external program calling one of them. This is the simplified construct: #!/bin/bash foo() { echo "this is foo" } bar() { echo "this is bar" } case "$1" in one) foo ;; two) export... (1 Reply)
Discussion started by: graysky
1 Replies

5. Shell Programming and Scripting

/usr/bin/time Shell Scripting Function

Hello, I have made a Linux Shell Script that downloads 6 files from the Internet and then deletes them. Now i want to use the function "/usr/bin/time" and "bc" to calculate how long the avergate run time for the shell script is. I therefore need to do it 100 times. My shell script code is below: ... (6 Replies)
Discussion started by: solo2
6 Replies

6. AIX

/usr/local/bin/cvs: Not found

I can able to access /usr/local/bin/cvs in the terminal (AIX 6.1 Box). but i am getting the "/usr/local/bin/cvs: Not found " when i call it from the script. please some one assist me what maybe problem (6 Replies)
Discussion started by: hifirockz
6 Replies

7. OS X (Apple)

When to use /Users/m/bin instead of /usr/local/bin (& whats the diff?)?

Q1. I understand that /usr/local/bin means I can install/uninstall stuff in here and have any chance of messing up my original system files or effecting any other users. I created this directory myself. But what about the directory I didn't create, namely /Users/m/bin? How is that directory... (1 Reply)
Discussion started by: michellepace
1 Replies

8. Solaris

Questions about /usr/local/bin & scripts.

Hi gentlemen. For what intended is the directory /usr/local/bin? In this directory are some script. I don't understand how these scripts being in this directory are started. Each time after registration of the user occurs start of these scripts. These scripts start applications. (7 Replies)
Discussion started by: wolfgang
7 Replies

9. Shell Programming and Scripting

#/usr/bin/csh -f not working as expected?

Hey everyone, A coworker of mine has written a csh script that starts with #!/usr/bin/csh -f. It's my understanding that the -f should skip the .cshrc and .login files, but here's the problem: In the script "line" is used, and I happen to have a "line" in my ~/bin. When the script is ran my... (4 Replies)
Discussion started by: effigy
4 Replies

10. Solaris

/usr/bin/cut not working with largefiles on Solaris 10

I have a person running a perl script that is parsing > 2G log files and pipes to cut -d " " -f 1,6,7,8... The script itself is in a nfs mounted home directory. It runs fine when started from a solaris 8 box but fails after about 400 lines when started from the solaris 10 box. The solaris... (1 Reply)
Discussion started by: wottie
1 Replies
Login or Register to Ask a Question