thanks for the answer Stephane; dont get me wrong, I do understand that
using another variable removes the need for some special variables (do you
need $REPLY if you can always use "read v" and be happy with it?). Dont you
think it makes sense what Konsolebox has written?

sincerely,
pg
El 19/12/2015 03:46, "Stephane Chazelas" <stephane.chaze...@gmail.com>
escribió:

> 2015-12-19 00:58:41 +0100, Piotr Grzybowski:
> >  Thanks for taking time to answer. Of course it is the issue of
> > programming style (isnt it true that most things can be brought down
> > to the programming style?), two real-life examples (stripped-down of
> > everything):
> >
> > #1
> > if [ -f ${output}/${branch}/${index}/${current} ]; then
> >  let current--;
> >  for((i=0;i<${branch};i++)) do
> >   index=`new_index ${current} ${index}`;
> >  done;
> >  echo "$^ already filled, regenerating index ${index}/${current}";
> >  find ${backup}/`basename $^` -type f -exec cp `dirname "$^"/* [..]`
> >  rebuilt ${output} -previous "$^" -branch ${branch} ${index}/${current};
> > fi;
> >
> > lets assume that for some wicked reason you do not need another local
> > variable l=${output}/${branch}/${index}/${current}, besides you would
> > need to remember that it consists of many parts, assemble and
> > reassemble it, remembering some previous values, also for some reasons
> > you cant refactor the above code (which of course always can remove
> > the need for any special variables): lets say that it reflects some
> > logic. Without $^ it begins to look terrible.
>
> Using a variable is the most obvious thing to do.
>
> Also, what if "new_index" was a function which does call "[ -f"
> on another file?
>
> You've got a lot variables and command substitutions that need
> quoted here btw.
>
>
> > #2
> > touch /tmp/`date +%s`; if [ -f /tmp/`date +%s` ]; then echo "ok: $^"; fi;
> >
> > just a quick example (the real one was much more complicated in terms
> > of `` and the latter use of $^) of auto-generated code whos author
> > really did not want to use another variable, as it would be a waste of
> > space in his generating code. Without $^ the above requires more care.
> >  As for the all-purpose perl-alike $_ of course I have some ideas,
> > just let me think, and lets just hope I will not retreat into myself
> > after you say that $^ is useless ;-)
> [...]
>
> Again, use a variable. Not using a variable is even wrong here,
> as those two calls of "date" could return a different result.
>
> --
> Stephane
>
>
>

Reply via email to