On 2013-12-23 23:57:32 +0100, rens wrote: > Hello, > > this script: > _______________________ > export cval=0 > echo entering while > > # listing ten files, to generate some output to count. > ls -1 /usr/bin|head -10 |while read fname
Just use a `for` loop and a glob. Really. It's that easy. > do > cval=$(( cval +1 )) > echo cval = $cval file = $fname > done > # one would think cval is now 10. but it is not, contrary to any other > programming language........ Really, all other programming languages propagate variables from children to parents? I find that hard to believe. > that makes no sense. Yes, it does. You created a subshell. How do you expect for the variable to propagate back to the parent, where you are expanding it? > Please Don't bother to tell me it s the way you guys think it should > technically work. > I know you think something along those lines, at least thats what I am > told.... Don't use a subshell if you don't want one. > However, no one in this world having to solve real life issues with > software, is interested in how it technically works. we need real life > logic and software that can deal with real life challenges and requirements. Then stop using a subshell. > Bash should not work that way. no programming language handles logic this > way. Not pascal, korn shell, c shell, cobol, c, c++, lua , fortran or any > other language i ever used. None of the languages you listed propagate variables from children to parents directly. I don't know why you think you should have that variable in the parent when you populated it in a subshell...
pgp6pXgFwKge0.pgp
Description: PGP signature