All we mean by the term code snippets is a prepared code that we can read into our current script. This is especially easy with vim
being able to read the contents of other text files during editing:
ESC :r <path-and-filename>
For example, if we need to read the contents of a file called if
located in $HOME/snippets
, we will use the following key sequences in vim
:
ESC :r $HOME/snippets/if
The contents of this file is read into the current document below the current cursor position. In this way, we can make the code snippets as complex as we need and maintain the correct indentations to aide readability and consistency.
So, we will make it our duty to always create a snippets directory in our home directory:
$ mkdir -m 700 $HOME/snippets
It is not required to share the directory, so it is good practice to set the mode to 700
or private to the user when it is being created.
When creating snippets, it is your choice to use a pseudo-code or real examples. My preference is to use real examples that are edited to reflect the requirements of the recipient script. The contents of a simple if
snippet will be:
if [ -z $1 ] ; then echo "Usage: $0 <name>" exit 2 fi
This gives us the layout to create an if
statement with a practical example. In this case, we check to see if $1
is unset and send an error to the user before exiting the script. The key is in keeping the snippet short to limit the changes that need to be made but easily understood and expandable, as required.
If we are to display text messages to the users and operators executing the scripts, we can provide colors to help in message interpretation. Using red as a synonym for errors and green indicating success makes it easier to add functionality to our scripts. Not all but certainly a vast majority of Linux terminals support color. The built-in command echo
when used with the -e
option can display color to users.
To display a text in red we can use the echo
command, as follows:
$ echo -e " 33[31mError 33[0m"
The following screenshot shows both the code and the output:
The red text will bring immediate attention to the text and the potential of failure of script execution. The use of color in this way adheres to the basics of principals application design. If you find the code cumbersome, then simply use friendly variables to represent the colors and the reset code.
In the previous code, we used red and the final rest code to set the text back to the shell default. We could easily create variables for these color codes and others:
RED=" 33[31m" GREEN=" 33[32m" BLUE=" 33[34m" RESET=" 33[0m"