Here is a little site which is good for spotting basic mistakes in shell
scripts.

http://www.shellcheck.net/

-Surya


On Thu, Feb 25, 2016 at 2:23 PM, Himanshu Shekhar <irm2015...@iiita.ac.in>
wrote:

> Thanks a lot for reviewing the code.
> I thank you a lot.
>
> On Feb 25, 2016 9:41 PM, "Jean-Baptiste Thomas" <
> cau2jeaf1ho...@laposte.net> wrote:
> >
> > > github.com/himanshushekharb16/ProxyMan
> >
> > Hi Himanshu. Quick look at main.sh.
> >
> > 1) Some messages are written to stdout, others to stderr. I think
> > that writing everything to stderr would be preferable, if only for
> > consistency. Rule of thumb : if it's data, write to stdout ; if
> > it's messages, write to stderr, even if they're not errors. A
> > function like this is useful :
> >
> >   msg ()
> >   {
> >     fmt=$1
> >     shift
> >     printf "myprog: $fmt\\n" "$@" >&2
> >   }
> >
> > or
> >
> >   msg ()
> >   {
> >     echo myprog: "$@" >&2
> >   }
> >
> > if you prefer echo.
> >
> > 2) After "case $choice in toggle)",
> >
> >   if [ $mode == "'none'" ]; then
> >
> > is not safe. Should have double quotes around $mode.
> >
> > 3) You seem to like to quote string constants, as in
> >
> >   if [[ $4 == 'y' ]]; then
> >
> > It doesn't hurt anything, but it's completely unnecessary. Just
> > a heads-up.
> >
> > 4) exit is often called without an argument. Or not called at
> > all. A program that succeeds must exit with status zero.
> > Conversely, exiting with status zero constitutes a promise that
> > everything went well. Even if the exit status is less important
> > for interactive programs such as yours, it's a good habit to get
> > into.
> >
> > 5) There's a general lack of checking for failure of operations
> > that can fail (writing to files, copying files...).
> >
>
> I am novice to bash. In fact, I learned bash a little bit just to
> implement the idea. So, there are examples that show my immaturity. My bad!
>
> Also, I would love to know about good sources to learn and practice Bash.
> I followed "The Linux Command Line by William E. Shotts".
> > 6) Lots of variable references without double quotes around them,
> > EG when calling configure_apt(). What if, say, the password
> > contains white space or "?" or "*" or "[" ?
>
> Please tell me about how to read special characters as @, ? etc. in
> password, as @ is the point after authentication where IP starts.
>
> >
> > Sorry if this sounds like nit-picking but attention to detail is
> > a big part of quality. Good luck.
>
> Mark Zuckerberg said, "We should break things, to make them better".
> And you quoted the points where things may break.
> Thanks again. :)
>



-- 

Surya Saha
Sol Genomics Network
Boyce Thompson Institute, Ithaca, NY, USA
http://www.linkedin.com/in/suryasaha
https://twitter.com/SahaSurya

Reply via email to