Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

shell scripting coding guidelines /checklist

Posted on 2015-01-05
7
Medium Priority
?
165 Views
Last Modified: 2015-02-09
Hi ,

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

Thanks,
Magento
0
Comment
Question by:magento
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
7 Comments
 
LVL 84

Expert Comment

by:ozo
ID: 40532911
Which shell?
0
 
LVL 5

Author Comment

by:magento
ID: 40532922
Ozo ,

I am planning to use BASH.

Thanks
0
 
LVL 1

Assisted Solution

by:jsaun
jsaun earned 2000 total points
ID: 40532943
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
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
LVL 5

Author Comment

by:magento
ID: 40537207
Hello Jsaun,

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

Thanks
0
 
LVL 1

Accepted Solution

by:
jsaun earned 2000 total points
ID: 40537247
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
0
 
LVL 5

Author Comment

by:magento
ID: 40539117
Exactly what i'm looking for . Thank you so much !!!
0
 
LVL 5

Author Closing Comment

by:magento
ID: 40597828
jsaun,Thanks again!!!
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Over the years I've spent many an hour playing on hardened, DMZ'd servers, with only a sub-set of the usual GNU toy's to keep me company; frequently I've needed to save and send log or data extracts from these server back to my PC, or to others, and…
How to remove superseded packages in windows w60 or w61 installation media (.wim) or online system to prevent unnecessary space. w60 means Windows Vista or Windows Server 2008. w61 means Windows 7 or Windows Server 2008 R2. There are various …
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…
Suggested Courses

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question