Shell方法参数传递机制详解

6.方法参数传递机制详解

函数介绍

  1. Linux Shell 中的函数和大多数语言的函数一样
  2. 将相似的任务或者代码封装到函数中,供其他地方调用

第一种形式

name()

{
command;
command;
}

第二种形式

[ function ] funnane[()]

{
     action;
     [return int;]
}

其中  [] 中的内容是可选的

例子

例子1

#!/bin/bash

function test(){
    echo "我是一个函数"
}
#调用函数
test 

输出

我是一个函数

例子2

使用局部变量


#!/bin/bash

function test(){
        cc="this. is cc"
        dd="this. is dd"
        echo $cc
        echo "我是一个函数"

}
test

输出

this. is cc
我是一个函数

例子3

传递参数

#!/bin/bash
aa="this is aa"
bb="this is bb"
function test(){
        echo $1  // 这里的$1 从test函数传递过来的
        cc="this. is cc"
        dd="this. is dd"
        echo $cc
        echo "我是一个函数"

}
test $1  // 注意 这里要传递 $1 是从shell传递过来的


输出


./function.sh  123
123
this. is cc
我是一个函数

循环

#!/bin/bash
a=1;
factorial(){
for(( i=1; i<=$1; i++))
do
        a=$[$a * $i]
done
echo "$1 的阶乘时 $a"

}
factorial $1

输出

./function.sh  7
7 的阶乘时 5040

返回值1

如果没有return 默认返回最后一行的结果


#!/bin/bash
fun2(){

read -p "请输入数值 " num
let 2*num

}

fun2
echo "fun2 return value : $?"

输出

 ./function.sh
请输入数值 10
fun2 return value : 0

返回值2


#!/bin/bash
fun2(){

read -p "请输入数值 " num
echo  $[2*$num]

}

fun2
echo "fun2 return value : $?"

输出

 ./function.sh
请输入数值 10
fun2 return value : 20

请输入数值 150
fun2 return value : 44

这个返回值是256的约数 范围是0-255

返回值3


#!/bin/bash
fun2(){

read -p "请输入数值 " num
echo  $[2*$num]

}

result=`fun2`
echo "fun2 return value : $result"

输出

 ./function.sh
请输入数值 10
fun2 return value : 20

请输入数值 150
fun2 return value : 300

你可能感兴趣的:(linux)