+= operator


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers += operator
# 1  
Old 09-05-2010
+= operator

im new to bash scripting and im just using online tutorials and trial and error. i wanted to write a script to read numbers from a file and find their sum:



Code:
#!/bin/bash

theSum=0
for line in $(cat numbers.txt)
do
	let "theSum = theSum + $line"
	echo "$line"
done

echo "The sum is $theSum"




when i run this it echoes all the numbers but doesnt give me the correct sum and echo $? returns 0. my console output looks like this:

Code:
$ ./test.sh
")syntax error: invalid arithmetic operator (error token is "
1
")syntax error: invalid arithmetic operator (error token is "
2
")syntax error: invalid arithmetic operator (error token is "
34
")syntax error: invalid arithmetic operator (error token is "
77
89
The sum is 89


im not sure why i am getting those syntax errors. thanks.

Last edited by pludi; 09-06-2010 at 01:57 AM..
# 2  
Old 09-06-2010
BASH doesn't use BASIC's "let" syntax. Try:

Code:
((sum+=line))

Also, "for line in $(cat numbers.txt)" is a two-combo useless use of cat plus useless use of backticks. You can do this much more efficiently and safely as
Code:
while read line
do
        ...
done < numbers.txt

This User Gave Thanks to Corona688 For This Post:
# 3  
Old 09-06-2010
BASH does use "let". Your script runs fine on my env.

Do you try :

Code:
/usr/bin/bash test.sh

# 4  
Old 09-06-2010
The messed up "syntax error" message tells me that that there are probably Microsoft MSDOS carriage return characters in the data. This can arise from creating a text file with say Windows Notepad and copying the file to a unix server without conversion.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed or operator

hi, I got a requirement to change existing script like below to search additional pattern "DB select". i tried using \| opearator but it is not working :(. Below is the existing code echo $(cat ${1} |sed -n '/Error in/ { N N N /Too many/ { p ... (5 Replies)
Discussion started by: shyamxtasy
5 Replies

2. Programming

C++ no match for 'operator []'

I wrote a little students management program using structs, and when I try to compile it, an error appears: luke@luke-desktop:~/Desktop/ProgII$ g++ recStudents.cc recStudents.cc: In function ‘void add(TList&, Tstudent)': recStudents.cc:114: error: no match for ‘operator' in ‘Slist'Here... (2 Replies)
Discussion started by: Luke Bonham
2 Replies

3. Shell Programming and Scripting

equal to operator

Hi, I have the below script executed arg="dir" if "$arg" = "dir" then echo "true" else echo "false" fi Please let me know what happens in the if command. My output is: dir: dir: No such file or directory false which is not the desired output. When i used test command... (1 Reply)
Discussion started by: anijan
1 Replies

4. UNIX for Dummies Questions & Answers

su with << operator

All, THe below is my script , when i use this i am getting nothing . could any one help me to know what is the use of the << operator below su - $8 << supo echo "exportsph $2 $1 $3 $4" exportsph $2 $1 $3 $4 supo i also tried as individual command su - userid << supo , when i do... (3 Replies)
Discussion started by: arunkumar_mca
3 Replies

5. Shell Programming and Scripting

op of logical operator

Why the op of the following code is like this ???? i=4 j=-1 k=0 echo $? echo $? echo $? (5 Replies)
Discussion started by: lipun4u
5 Replies

6. Programming

new operator

Hi, Please clear the 2 questions, 2 Questions, 1) Why the new as a operator? Is there any special reason why it can't be a function like malloc? 2) How are we considering sizeof(),new are as a opearartors? I know + - * / -> , . etc.. are operators, which criteria satisfied by sizeof()... (4 Replies)
Discussion started by: Nagapandi
4 Replies

7. Shell Programming and Scripting

TEST operator help

Hi I want to group like this but syntactic is not right ... Thanks if Like this below does not work properly .. if then : else usage exit 1 fi (5 Replies)
Discussion started by: zam
5 Replies

8. Shell Programming and Scripting

SED * operator

1. echo "abc 123 abc" | sed 's/*/X/' yields - X 123 abc Does this mean the "*" operator matches ONLY the first and the entire token - "abc" and replaces with "X" ? 2. echo "123 abc" | sed 's/*/X/' yields - X123 abc What does this indicate about the "*" operator ?? (7 Replies)
Discussion started by: sinpeak
7 Replies

9. HP-UX

Or operator with if

hi, i was trying to club to test condition with if. if -o ; then it is giving me error message, i wanted to ask how can we check two condtions with one if. (1 Reply)
Discussion started by: babom
1 Replies

10. Shell Programming and Scripting

And operator

I am trying to check two variables and if both are blank I want to set a flag: the_f3_pid=`rsh $target ps -ef | grep "f3.eab" | awk '{print $2}'` the_f7_pid=`rsh $target ps -ef | grep "f7.eab" | awk '{print $2}'` if ; then y=1 fi I get an error: ./script_name: test: 0403-021 ]... (4 Replies)
Discussion started by: rcarnesiii
4 Replies
Login or Register to Ask a Question