Why this is not working in expected way?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Why this is not working in expected way?
# 1  
Old 12-07-2009
Error Why this is not working in expected way? (a question about the default bash behavior)

Code:
total=0

seq 1 5 | while read i ; do
total=$(($total+$i))
echo $total
done

echo $total

This outputs:
Code:
1
3
6
10
15
0

whereas I am expecting:
Code:
1
3
6
10
15
15

My bash version:
Code:
> bash -version
GNU bash, version 3.1.17(1)-release (x86_64-redhat-linux-gnu)

meharo

Last edited by meharo; 12-07-2009 at 06:15 AM.. Reason: As per the forum guidelines...
# 2  
Old 12-07-2009
Because the behavior of your script is undefined and bash decided to have the left side of a pipeline to be run in the original shell process and not the rightmost, a poor decision IMHO.

Switch to ksh if you want your script to behave as you expect.
# 3  
Old 12-07-2009
a better syntax would be
Code:
total=0
for in $(seq 5) ; do
total=$(($total+$i))
echo $total
done
echo $total

# 4  
Old 12-07-2009
That should read
Code:
for i in $(seq 5) ...

# 5  
Old 12-07-2009
Have a look here for information about how to get around the pipe thing in bash.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Test -e not working as expected (by me)

I ran into the following and still do not understand entirely the rationale behind this. If someone could explain why things are as they are I'd be thankful. The following was tested on AIX 7.1 with ksh88, but i suspect that to be ubiquitous. In an installation routine i had to create a set of... (6 Replies)
Discussion started by: bakunin
6 Replies

2. Shell Programming and Scripting

Script not working as expected

Hi, I have prepared a script and trying to execute it but not getting expected output. Could you please help and advise what is going wrong. "If else" part in below script is not working basically. I am running it on HP-UX. for i in slpd puma sfmdb do echo "******\t$i\t*******" echo... (10 Replies)
Discussion started by: sv0081493
10 Replies

3. UNIX for Dummies Questions & Answers

Nohup not working as expected

Hi. I am trying to start a script on my router that will execute even if i log off. To execute the script I write: nohup ./dslconnection > dslstat.out 2>&1 & It starts the job: 21968 admin 1604 S /bin/ash ./dslconnection The problem is that when I log back in the job has been... (6 Replies)
Discussion started by: sebcou
6 Replies

4. Shell Programming and Scripting

echo is not working as expected

for i in `cat /export/home/afahmed/Arrvial_time.txt` do echo $i echo $i | awk '$3 < $D { print $4 }' >> dynamic_DF.txt; done When i echo, its echo as Nov 15 02:24 /export/home/pp_adm/inbound//wwallet_20111115.txt where i expect it to be Nov 15 02:24... (7 Replies)
Discussion started by: afahmed
7 Replies

5. UNIX for Dummies Questions & Answers

-atime not working as expected

I need to sort through a volume that contains video files by access time and delete files that have not been accessed over x days. I have to use the access time as video files are originals that do not get modified, just read Testing commands on a local test folder... $ date Wed Sep 28... (10 Replies)
Discussion started by: canon273
10 Replies

6. Red Hat

FTP on Linux is not working as expected

Hi, I need to write a Linux shell script which will perform an FTP operation to another server. main.sh will contain - ftp -nd Dest.IP.address < ftpScript.sh Contents of ftpScript.sh is given below - user userid passwd prompt lcd /vidya/Input cd vidya/Output mput *.* close ... (1 Reply)
Discussion started by: vidyak
1 Replies

7. UNIX for Dummies Questions & Answers

Redirection not working as expected

Portion of my script below : if ; then NUMBEROFFEILDS=`cat ${BASE_SCRIPT_LOC}/standardfilecleanup.lst|grep -w ${db_file_path}|awk -F: '{print NF}'` COUNT=4 while ; do awk_var="$"`echo $COUNT` file_name1=`cat ${BASE_SCRIPT_LOC}/standardfilecleanup.lst|grep -w... (1 Reply)
Discussion started by: findprakash
1 Replies

8. Shell Programming and Scripting

Find cmd not working as expected

Hi, i wan to search the file starting with Admin into the directory Output. I am running below command: find /appl/Output -name "Admin*" -prune but this command is going into the sub directories present under output. I do not want to search under sub directories. Any help will be highly... (6 Replies)
Discussion started by: Vishal123
6 Replies

9. Shell Programming and Scripting

ls not working as expected within ksh

Hi, I use the command ls a\b\c\*.txt from the command line on HP UNIX and it works fine - It lists all files matching *.txt in the a\b\c directory When embeded in a ksh script `ls a\b\c\*.txt` it does not work - I get *.txt not found (even though there are files) I tried... (10 Replies)
Discussion started by: GNMIKE
10 Replies

10. Shell Programming and Scripting

which not working as expected

Hello. Consider the following magic words: # ls `which adduser` ls: /usr/sbin/adduser: No such file or directory # Hmmm... Then: # ls /usr/sbin/adduser /usr/sbin/adduser # Now what? Unforunately this little sniippet is used in my debian woody server's mysql pre install script.... (2 Replies)
Discussion started by: osee
2 Replies
Login or Register to Ask a Question