Table of Contents
In this tutorial, I will go through the function in bash shell scripting with examples. Bash function is basically a set of commands that can be called number of times. The very purpose of a function is to help reuse the same logic multiple times. Compared to other programming languages, Bash functions are little different and can be used in a limited way.
Function in Bash Shell
What is Function
Functions in Bash are usually a set of commands to perform a particular task. So whenever you call a function in your script, execution will jump into that function and will resume from same place once the function execution completes.
Why do we need function
a)It reuses the functionality efficiently.
b)It Improve the readability of a program.
c)Same variables can be used locally in every function.
d)It allows a Complex functionality to be divided into smaller tasks.
Syntax
function fname {
....................................
commands
.........................................
}
Variables in Bash Functions
Every variable we use has a scope, the scope is variable visibility to your script.
You can define two types of variables:
a)Global
b)Local
Global Variables
They are visible and valid anywhere in the bash script. You can even get its value from inside the function.If you declare a global variable within a function, you can get its value from outside the function.
Any variable you declare is a global variable by default. If you define a variable outside the function, you call it inside the function without problems:
#!/bin/bash
func1() {
val=$(($val + 20))
}
read -p "Enter a number: " val
func1
echo "The new value is: $val"
Local Variables
If you will use the variable inside the function only, you can declare it as a local variable using the local keyword like this:
local tmp=$(( $val + 10 ))
So if you have two variables, one inside the function and the other is outside the function and they have the identical name, they won’t affect each other.
#!/bin/bash
func1() {
local tmp=$(($val + 10))
echo "The variable from inside function is $temp"
}
tmp=4
func1
echo "The variable from outside is $tmp"
Also Read: How to print array in Bash Scripts
Reference: Bash Shell Script