Introduction
One core functionality of Bash is to manage parameters. A parameter is an entity that stores values and is referenced by a name, a number or a special symbol.
parameters referenced by a name are called variables (this also applies to arrays)
parameters referenced by a number are called positional parameters and reflect the arguments given to a shell
parameters referenced by a special symbol are auto-set parameters that have different special meanings and uses
Parameter expansion is the procedure to get the value from the referenced entity, like expanding a variable to print its value. On expansion time you can do very nasty things with the parameter or its value. These things are described here.
If you saw some parameter expansion syntax somewhere, and need to check what it can be, try the overview section below!
Arrays can be special cases for parameter expansion, every applicable description mentions arrays below. Please also see the article about arrays.
For a more technical view what a parameter is and which types exist, see the dictionary entry for "parameter".
...is a unit testing framework for Shell scripts - namely Bash.
This is a very light weight (as in one file) unit testing library for Bash scripts. It functions similarly to Java's JUnit.
You do not need to touch any of your shell scripts to run unit tests against it. That is to say, that your original source code does not need to know about the BSTL in order for the unit tests to work.
How do I get exit status of process that's piped to another (for e.g. 'netstat -tulpn | grep nginx') on a Linux or Unix-like system using a bash shell?
shUnit2 is a xUnit unit test framework for Bourne based shell scripts, and it is designed to work in a similar manner to JUnit, PyUnit, etc. If you have ever had the desire to write a unit test for a shell script, shUnit2 can do the job.