Web lists-archives.com

Re: Recomended tutoial(s) on doing arithmetic in Bash scripts




On 03/05/2017 02:23 PM, tomas@xxxxxxxxxx wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sun, Mar 05, 2017 at 12:10:43PM -0600, Richard Owlett wrote:

[...]

How about the whole app <grin>
You solved my problem with one line.

Glad it helped :)

[...]

I needed to report the number of bytes downloaded for each portion
of a project [...]

Let me pick a nit...

mystring=$(echo $(grep "usb0" /proc/net/dev))

This should be equivalent to

  mystring=$(grep "usb0" /proc/net/dev)

I was just copying the tutorial's syntax. I had no explanations, only code fragments. One of the sites that prompted me to ask for recommendations.


(background:

  - grep "usb0"/proc/net/dev
    spits out the line(s) containing the pattern "usb0"

  - the $(...) around it expands it in the shell inline

  - the echo spits that again out to stdout

  - the $(...) around it expands it again in-line

So unless the expansion is doing anything funky (which we won't hope,
but see below), you can unwrap the outer $(echo ...).

Now the second nit: I'm not sure whether there's a case when the
unquoted $(...) might undergo a further expansion by the shell,
so it's prudent to quote it, like so:

  mystring="$(grep "usb0" /proc/net/dev)"

(I know, my example wasn't... exemplar in this respect, but I knew
I was only getting plain numbers and I was kind of lazy: bad tomás)

Someone on another group wanted me to use LibreOffice Calc ;/

Might work, but don't ask me how :-/

That poster's explanation made little sense. Only one of the reasons I didn't try it.