Дана 24/05/14 11:52AM, Walter Alejandro Iglesias написа:
> I learned about the convenience of adding the '-r' option in the "while
> read" loop many years ago when I was writing a script to convert roff to
> html, the problem aroused with the backslash in roff comments (.\").

That's more or less the point that answer is trying to make: you should 
use the right tool for the job. Shell command language is not fit to 
create parsers or interpreters in. Attempts can be made, but some 
corner will be hit sooner or later. When that happens, it is time to 
rethink if the problem would be better attacked by a full-fledged 
program in a general programming language. Parsers, interpreters and 
compilers are examples of this.


> Immediately, some "experts" started to point me "holes" in my
> script, when what I posted was just a sketch.  In that case disregarding
> shell scripting wasn't useful as an argument since they were proposing
> fail2ban.sh (a clear example of using shell scripting for something
> complicated. ;-))

Antipatterns are bad. I don't mean the ellipsis in `ls -l ...`. I mean 
things like

  cat file | grep hello | cat | sed 's/hello/world/g' | cat - > output

  for file in `echo `ls *` `; do echo $file; done

  ls -l | awk '{ print $5 }'    # different things with different ls'es
                                # under different locales, and on 
                                # different systems, with differently
                                # named files

which are something a novice will see and adopt, especially when it is 
not even communicated as a "sketch", and a seasoned user of shell will 
just be annoyed with.

I've also seen system shell scripts from major distributions of 
GNU/Linux and some mainstream software projects which feature examples 
of this kind, so not even their developers are immune to it. More than 
necessary amounts of bugs and security holes are then not a surprise at 
all.

Reply via email to