In this blog, we will discuss the Function of Bash Scripting, Don’t worry we always think about the precious time of the reader. In this blog, we will discuss What is a function in the bash script. What are the different types of functions in a bash script? Why do we use the function in bash and many things related to that? So let’s get started with the blog.
Introduction to Function in Bash Scripting
Functions in Bash scripting can be defined as a set of commands which can be reused several times with the bash script.
Functions in bash are there to make your scripts easier to read and prevent you from writing the same code repeatedly.
It helps the programmer to divide long, complex code into small pieces of code that can be reused anywhere whenever the programmer needs he/she can use it.
We can reuse, optimize, and simplify the code by calling functions frequently and at any time.
Advantages of Function in Bash Scripting
- It provides modularity in the program and reduces the code length.
- We can use that file for executing the set of commands one or more times as per our requirements.
- The function in the bash makes the program more readable to the programmer.
- These instructions can be typed directly into the command line, but from the point of reuse, it is useful to collect all the relevant instructions for a certain task in a single file, which makes that file reusable in the program.
Key points for writing Functions in Bash Scripting
- Before we can call the function, it must be declared in the shell script.
- Arguments can be passed to the functions and accessed inside the function as $1, $2, etc.
- Built-in commands of the Bash shell can be overridden using functions.
- Within the function, local variables may be assigned, and their scope will be limited to that specific function.
The Syntax for writing Functions in Bash Scripting
The syntax for declaring a bash function can be defined in two formats:
A) Start with the function name, followed by parentheses.
function_name () {
commands
}
b) Starts with the function reserved word, followed by the function name
function function_name {
commands
}
Types of Functions in Bash Scripting
1) Simple Function Declaration in Bash Scripting
#!/bin/bash
## Printing Hello Bash Example
## First Type Syntax
BashFirst(){
echo "Hello Bash Programming First Method Type"
}
BashFirst
## Output:
Hello Bash Programming First Method Type
#!/bin/bash
## Printing Hello Bash Example
## Second Type Syntax
function BashSecond(){
echo "Hello Bash Programming Second Method Type"
}
BashSecond
## Output:
Hello Bash Programming First Method Type
2) Passing Arguments in Function
#!/bin/bash
## Function Arguments
print_arguments(){
echo $1
echo $2
echo $3
}
print_arguments "Bin""Fin""Tech"
#!/bin/bash
## Function Arguments
## Addition of two numbers
sum(){
echo "Addition of two numbers is:" $(($1+$2))
}
sum 8 9
3) Variable scope in Function in Bash Scripting
#!/bin/bash
## Scope in function
emp1="Alex"
emp2="Sam"
function getEmployeeName(){
local emp1="Copper"
emp2="Travis"
echo "We are inside the function"
echo $emp1
echo $emp2
}
echo "Executing before the function call"
echo $emp1
echo $emp2
getEmployeeName
4) Return Value of Function in Bash Scripting
#!/bin/bash
## Return Function Demo
function getName(){
company_name="BinFin Tech"
echo $company_name
echo $1
return 5
}
getName "Company Name"
echo "The previous function returned value is $?"
#!/bin/bash
## Alternative return function
function getName(){
local company_name="BinFin Tech"
echo $company_name
}
company="$(getName)"
echo $company
5) Overriding Commands of Function in Bash Scripting
#!/bin/bash
## Override Functions
function echo(){
builtin echo "Company name is: $1"
}
echo "BinFin Tech"
FAQ
Function in Bash scripting can be defined as a set of commands which can be reused several times with the bash script.
Functions in bash are there to make your scripts easier to read and prevent you from writing the same code repeatedly.
We can write a function in two different formats
1) Start with the function name, followed by parentheses.
function_name () {
commands
}
2) Starts with the function reserved word, followed by the function name
function function_name {
commands
}
Just write the name of the function.
$* – It stores a complete set of the positional parameter in a single string.
$@ – Quoted string treated as a separate argument.