[clug] Pointless time-wasting bash questions

Bob Edwards Robert.Edwards at anu.edu.au
Fri Jun 26 00:15:28 MDT 2015


On 26/06/15 15:44, Paul Harvey wrote:
>
> On 26 Jun 2015 15:26, "Bob Edwards" <Robert.Edwards at anu.edu.au
> <mailto:Robert.Edwards at anu.edu.au>> wrote:
>  > In the example above, the quotes add nothing but noise unless you
>  > also change the wordlist to include names with spaces etc.
>
>     That's true, but I feel there's a bit of irony that you mention code
>     audit here because the only reason I started quoting everything is
>     so that I don't have to reason about the scope/content/provenance of
>     variable contents.
>
>
>
>     I actually learnt this habit from the shellfire project code style,
>     andhttp:// <http://shellcheck.net>shellcheck.net
>     <http://shellcheck.net> complains if you fail to quote variables.
>
>     This is why I came to CLUG, I've only had things like shellcheck,
>     stackoverflow, and the occasional misleading tutorial
>
> to teach myself odd habits, it's good to see how people are using the tools.
>

First up, welcome to CLUG - glad you made it along last night.

So, why not just:

for i in /GenericAgent. . ; do cp Kernel/Config"$i"pm{.dist,} ; done

(which works just as well). Or (to start getting pathologic):

for i in /GenericAgent. . ; do cp Kernel/Config"${i}"pm{.dist,} ; done

Or

for i in /GenericAgent. . ; do cp Kernel/"Config${i}"pm{.dist,} ; done

Again, the quotes aren't actually doing anything here (except in the
first instance above: you do need something to delimit the variable i
from the "pm", but it could just as easily be Config$i"pm" etc.) and
it doesn't really matter where you put them, hence my suggestion that
they are seemingly random.

You mention stackoverflow, and I found this stackoverflow article
helpful on this topic:
http://stackoverflow.com/questions/18135451/what-is-the-difference-between-var-var-and-var-in-the-bash-shell

cheers,

Bob Edwards.


More information about the linux mailing list