Thursday, April 7, 2022

Linux Shell Script Function

 Functions are set of statements which is invoked whenever it is required. In the below example, I am defining 3 functions and invoking them as per the user's choice.

changeHomedir() {
        echo "I am changing the directory to /home/vagrant"
        cd /home/vagrant
        pwd
}
finduser() {
        var1=`whoami`
        echo "You are currently logged in by $var1"
}
patchprocess(){
        echo "This is patch process"
}
choice="Y"

while [ $choice == "Y" ]
do
  echo "1 Change the directory"
  echo "2 Find the logged in user"
  echo "3 Path process"
  echo "4 Exit"
  echo "Enter your choice"
  read choice1
  case $choice1 in
          1)
            changeHomedir
            ;;
          2)
            finduser
            ;;
          3)
            patchprocess
            ;;
          *)
            choice="N"
   esac
done


Function with parameter

We can pass the parameters to the funciton which is represented by $n where n is the argument number.

Example

executecmd() {
        echo "Executing $1 commad"
        $1
}
executecmd $1

In this example $1 which is in the executecmd definition is first parameter of function whereas execute $1 statement $1 is the command line argument

Execute

./func1.sh pwd

Example

Function with parameter and return a value

func1(){
        echo "-------------- $1 process $2---------"
}
func2(){
        var1=`cat $1 | wc -l`
        return $var1
}
func1 "pwd" "starting"
pwd
func1 "pwd" "ending"

func1 "$1" "starting"
$1
func1 "$1" "ending"

func2 $2
echo $?

Execute

./fun1.sh whoami fun1.sh


1 comments:

Sunil Donthula said...

sir can we add or execute another shellscript file inside a shellscript?

Post a Comment