3 ms·
It’s a trade off. I had to use a piped loop earlier this year to extract fallout new Vegas mods and textures since they all had spaces in their file names. Fo
by edgyquant 5y ago
It’s a trade off. I had to use a piped loop earlier this year to extract fallout new Vegas mods and textures since they all had spaces in their file names. For this it was perfect to pipe a list of the names to a loop, but for 99% of things I just use a for loop
- jolmg 5y agoYup. 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