Sunday, May 13, 2018

Usage Of Functions In Shell Scripting


Benefits of using functions inside shell scripting are:

- Less coding.
- Modular approach.
- Easy to understand.
- Exported as required for portability.
- Easy to expand or edit later.

As mentioned before, we could use functions inside shell scripting whenever required such as when there are set of codes which are common across some shell scripts then those common lines could be grouped into a function and called when required. Like-wise this approach of using functions would provide better readability, which is easier to understand, as well these functions could be amended independently. A group of codes put together to perform a specific task and defined with a name could be called as a function in shell scripting.



The basic syntax of declaring a function inside a shell script is:

function_name()
{
< statement1 >    
 < statement2 >  
.....
.....
}

The declared function would be called inside main function using function_name, and any requirements arguments (optional) would be passed:

function_name <argument1, argument2, argument3, ...>


Being said that, let's start creating a simple function and demonstrate the usage. In this example, I'd create a simple shell script to add user which is performed using functions as shown below:


As you could see in the above script, I've passed username, password & comments in the main program. So, when the scripts gets executed, it would create users "mpatrick" & "ssmurthy" with specified parameters. Also, note that there is shift command being used twice which would make it easy to consider rest of arguments passed after password as comments.

The below snap shows how it got executed and users gets added:



So, at first look the script looks to be working as expected, however, there is no error control in this program. If there is an error while executing useradd command it goes unnoticed. Hence, we could add a simple error checking mechanism which could return a value if useradd function fails to the calling program as shown below:


So, in the above script I've added a test condition after the "useradd" command call to check if that got failed and accordingly it would print failed message. Otherwise, print successful message after the changing password for user.

Now, lets re-run the script and check what happens. This time I'd remove user "ssmurthy" from system and then run the script.


From the above snap, we could see that adding user 'mpatrick' failed since the user was already present in the system, however, adding user 'ssmurthy' successful.

We'd could use the return value of a function inside the main script and depending on the result a relevant message could be displayed. So, I've added an if condition in the main script as shown below which validates the return value from the function and prints message:




So, when this script is executed it would show the results as shown below :



This is just an introduction to usage of functions inside shell scripting, there is much more that could be done using functions.

3 comments:

cyber news said...

Thanks for the information.It is really nice .Information security is the set of processes that maintain the confidentiality, integrity and availability of business data in its various forms.In this age of Technology advancement, computer and information technology have not only brought convenience to citizens in modern life but also for policemen & various Government officials of the nation to fight cybercrime through various modus operandi. Indian Cyber Army has been dedicated in fighting cyber crime, striving to maintain law and order in cyberspace so as to ensure that everyone remains digitally safe.Read more:- Information Security

IT Tutorials said...

It is really a great work and the way in which you are sharing the knowledge is excellent.
aws training in chennai with placement | best aws training in chennai | aws certification exam centers in chennai

Ethical Hacking said...

Thanks for sharing an information to us. If someone want to know about ethical hacking course. I think this is the right place for you! ceh Training