Sponsored Content
Top Forums Shell Programming and Scripting Error with expr - "expr: syntax error" Post 302601362 by methyl on Thursday 23rd of February 2012 12:44:25 PM
Old 02-23-2012
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:
Code:
# Didn't recognise variable
fred="abc"
echo $fred42
sh: fred42: Parameter not set.

# Spaces disappeared
fred="abc"
echo ${fred}42     displaced
abc42 displaced

# All working now. Spaces not lost
fred="abc"
echo "${fred}42     displaced"
abc42     displaced

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)).
Code:
act_rec_count=$((${tot_rec_count} - 1))



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:
Code:
for i in "horizon" "mysteryshopper" "rcc" "reference"

This User Gave Thanks to methyl For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

expr: syntax error. why?

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)
Discussion started by: robin.zhu
5 Replies

2. Shell Programming and Scripting

why "expr "${REPLY}" : '\([1-9][[:digit:]]*\)" can figure out whether it is a digit?

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)
Discussion started by: sleepy_11
6 Replies

3. Shell Programming and Scripting

"syntax error at line 21 :'done' unexpected." error message"

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)
Discussion started by: ibroxy
3 Replies

4. Shell Programming and Scripting

HowTo: reg expr doing grep "timestamp>$DesiredTime" logfile ?

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)
Discussion started by: Browser_ice
5 Replies

5. Shell Programming and Scripting

convert a=(b/100)*a into a "expr" expression

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)
Discussion started by: mac4rfree
2 Replies

6. UNIX for Dummies Questions & Answers

expr - Syntax error

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)
Discussion started by: omonoiatis9
2 Replies

7. UNIX for Dummies Questions & Answers

expr: syntax error

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)
Discussion started by: prachiagra
5 Replies

8. Homework & Coursework Questions

How to lclear "expr: syntax error" eventhough everything looks fine?

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)
Discussion started by: lathanandhini
6 Replies

9. Shell Programming and Scripting

Commenting out "expr" creates weird behavior

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)
Discussion started by: royalibrahim
3 Replies

10. Shell Programming and Scripting

Expr: non-numeric argument syntax error on line 1, teletype

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)
Discussion started by: nms
1 Replies
test(1) 						      General Commands Manual							   test(1)

Name
       test - test conditional expression

Syntax
       test expr
       [ expr ]

Description
       The  command  evaluates the expression expr.  If the value of expr is true, the command returns a zero exit status; otherwise, it returns a
       nonzero exit status.  The command also returns a nonzero exit status if no arguments are specified.

Options
       The following primitives are used to construct expr:

       -r file		   Tests if the file exists and is readable.

       -w file		   Tests if the file exists and is writable.

       -f file		   Tests if the file exists and is not a directory.

       -d file		   Tests if the file exists and is a directory.

       -s file		   Tests if the file exists and has a size greater than zero.

       -t [ fildes ]	   Tests if the open file, whose file descriptor number is fildes (1 by default), is associated with a terminal device.

       -z s1		   Tests if the length of string s1 is zero.

       -n s1		   Tests if the length of the string s1 is nonzero.

       s1 = s2		   Tests if the strings s1 and s2 are equal.

       s1 != s2 	   Tests if the strings s1 and s2 are not equal.

       s1		   Tests if s1 is not the null string.

       n1 -eq n2	   Tests if number1 equals number2.

       n1 -ge n2	   Tests if number1 is greater than or equal to number2.

       n1 -gt n2	   Tests if number1 is greater than number2.

       n1 -le n2	   Tests if number1 is less than or equal to number2.

       n1 -lt n2	   Tests if number1 is less than number2.

       n1 -ne n2	   Tests if number1 is not equal to number2.

       These primitives can be combined with the following operators:

       !expr		   Negates evaluation of expression.

       expr -a expr	   Tests logical and of two expressions.

       expr -o expr	   Tests logical or of two expressions.

       ( expr... )	   Groups expressions.

       The -a operator takes precedence over the -o operator.  Note that all the operators and flags are separate  arguments  to  Note	also  that
       parentheses are meaningful to the Shell and must be escaped.

See Also
       find(1), sh(1), test(1sh5)

																	   test(1)
All times are GMT -4. The time now is 06:34 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy