shell scripting coding guidelines /checklist

Hi ,

Can you please share any coding guidelines / standards available for shell scripting ?

Thanks,
Magento
LVL 5
magentoAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ozoCommented:
Which shell?
magentoAuthor Commented:
Ozo ,

I am planning to use BASH.

Thanks
jsaunCommented:
There are some style guides out there that you can read.  Take the good parts, and have good reasons for what you disagree with.   Mostly check with your client or employer and see what they require.

My top tenets:

Make your code read like prose.  Long, descriptive variable names are more clear for others to understand when they come along years later to tweak your code.  This means never use a loop iterator named "i".  If you're looping over servers in a list, then do something like  
for currentServer  in $serverList

Plan it out before you start writing it.  Remember doing flowcharts in college?  It's still a good idea.  Diagrams help you make sensible functions, and help you discover corner cases before you're coding.

Have someone buddy check as you go along, and test frequently.  

Write your test cases before you write your code.

Here are some style guide links:

http://wiki.bash-hackers.org/scripting/style
https://google-styleguide.googlecode.com/svn/trunk/shell.xml
http://tldp.org/LDP/abs/html/scrstyle.html 

Cheers and good luck
Python 3 Fundamentals

This course will teach participants about installing and configuring Python, syntax, importing, statements, types, strings, booleans, files, lists, tuples, comprehensions, functions, and classes.

magentoAuthor Commented:
Hello Jsaun,

Thanks for the ideas, i will follow it.
I am new here, can you please share knowledge on writing test cases ?

Thanks
jsaunCommented:
If your script expects input, test it with invalid input (as well as valid).  Typos, nulls, negative numbers, spelling errors.

If your script connects to a resource, how does it behave if the resource is not available?

If your script might be called by a hacker, check for stuff like SQL injection.   The best rule is: only accept data you are expecting to see.  If the data looks bad, better to fail safe.

That sort of thing.

And in a related note:  write out lots of logging data.  Logs help you find and fix problems later.  If you want to get fancy, you can put a debug switch in and use that to turn off most of the logging later on, but rarely will you regret having good logs

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
magentoAuthor Commented:
Exactly what i'm looking for . Thank you so much !!!
magentoAuthor Commented:
jsaun,Thanks again!!!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Shell Scripting

From novice to tech pro — start learning today.