Shell scripts Functions

What is Function ?

Function is a series of commands which performs particular activity in the script.

Uses of Functions ?

Syntax of Function:

  Function name ()

 {

         Commands

}

Example1:

Write a script to print the "hello world" by using Function ?

#!/bin/bash

#script for priniting Hello world

Hello ()

{

echo "Hello World"

}

 Hello

Output:

[vagrant@jhrk functions]$ sh basicfunexa1.sh

Hello World

Example2:

script for listing files with given extension ?

#! /bin/bash

#script for listing  files with given extension

lsext ()

{

find -type -f -iname '*.' ${1} ' ' -exec ls -l {}   \; ;

}

Output:

Example 3:

Script to execute a given Linux command on a group of files

 

Passing Parameters to Function

example 1:

Output:

Nested Functions

Nested Functions are the functions which can call themselves and other functions. A function which call itself is  known as recursive function .

Syntax:

fun1 ()

{

commands

fun2  ()

{

commands

}

}

Example:

Output:

Function return value

You cannot return an arbitrary result from a shell function. You can only return a status code which is an integer between 0 and 255. (While you can pass a larger value to return, it is truncated modulo 256.) The value must be 0 to indicate success and a different value to indicate failure; by convention you should stick to error codes between 1 and 125, as higher values have a special meaning (bad external command for 126 and 127, killed by a signal for higher values).

#!/bin/bash# This script will illustrate the use of return statement# It takes command line arguments as your name#  choice() {   echo "Is your name $* ?"   while true   do     echo -n "Enter yes or no:"     read x     case "$x" in       y | yes ) return 0;;       n | no ) return 1;;       * ) echo "Answer yes or no"     esac   done}# main begins here...echo "Original parameters are $*"if choice "$1"then   echo "Hi $1, nice name"else   echo "Never mind"fi

The execution of the above script as follows

Screenshot... Hari

: