4 ms·
Yup. Nearly everything has tradeoffs. BTW, the problem I mentioned earlier can be avoided by using `< <()`: $ x=1 $ seq 5 | while read n; do (( x++ )); do
by jolmg 5y ago
Yup. Nearly everything has tradeoffs.
BTW, the problem I mentioned earlier can be avoided by using `< <()`:
$ x=1
$ seq 5 | while read n; do (( x++ )); done
$ echo $x
1
$ while read n; do (( x++ )); done < <(seq 5)
$ echo $x
6
Almost makes me wonder what the benefit of preferring a pipe here is. I guess it's just about not having to specify what part of the pipeline is in the same shell.
- edgyquant 5y agoIt’s funny I’ve been using Linux for a decade and a half, professionally for about half that time, and yet I still go to python when arithmetic is involved. I’ve been learning a lot about the shell lately it’s like I did the bare minimum with bash just to be able to run programs and slightly automate things and it took this long for it to click with me that it’s a productive programming language in its own right (and probably faster than python.)
- chasil 5y agoWith the original Borne shell, the exper command was used for arithmetic. The POSIX shell allows the $(( form for native shell arithmetic, but not the (( alternative found in bash and Korn.
- yesenadam 5y agoI use "python calc" for quick calculations at the command line: pc () { python3 -c "print($*)" ; } $ pc 3.5**2.4 20.219169193375105 Or "awk calc", which seems much faster: (and ^ and ** both work for powers) calc () { awk "BEGIN{print $*}" ; } $ calc 3.5**2.4 20.2192