(7.1)LinuxShell脚本的⾃动化编程之Function函数的定义及调⽤,返回return ⽂章⽬录
1.函数
传参:$1,$2
变量:local
返回值:return $?
作⽤:
(1)完成特定功能的代码⽚段(块)
(2)在shell中定义函数可使得代码模块化,便于复⽤代码
(3)函数必须先定义才可以使⽤
2.定义函数
⽅法1:
函数名()
{
函数要实现的功能代码
}
⽅法2:
function 函数名
{
函数要实现的功能代码
}
写⼀个阶乘的函数
#!/bin/bash
#!/bin/sh
#!/usr/bin/bash
#!/usr/sh
#/bin/env bash 调⽤env获取bash
#/usr/bin/env bash
##echo $[1+2]和echo $[ 1+2 ]的结果是⼀样的
##$[]就是运算,let命令也是运算
factorial()
{
factorial=1
for((i=1;i<=10;i++))
do
factorial=$[$factorial * $i]
done
echo "10的阶乘:$factorial"
}
factorial
-------------------------------------------------------------------------
factorial()
for((i=1;i<=$num;i++))
do
factorial=$[$factorial * $i]
done
echo "10的阶乘:$factorial"
}
num=5##调⽤函数之前,定义了⼀个num变量
factorial
-------------------------------------------------------------------------
factorial()
{
factorial=1
for((i=1;i<=$1;i++))
do
factorial=$[$factorial * $i]
done
echo "10的阶乘:$factorial"
}
factorial 10//这个10会直接传递给函数factorial()的$1,直接执⾏./factorial.sh
##如果想要执⾏脚本的参数和函数的参数互动的话,改为:
factorial()
{
factorial=1
for((i=1;i<=$1;i++))
do
factorial=$[$factorial * $i]
done
echo "10的阶乘:$factorial"
}
factorial $1##这个$1会直接传递给函数factorial()的$1,直接执⾏./factorial.sh 10
-------------------------------------------------------------------------
factorial()
{
factorial=1
for((i=1;i<=$1;i++))
do
factorial=$[$factorial * $i]
done
echo "10的阶乘:$factorial"
}
factorial $1##这个$1会直接传递给函数factorial()的$1,直接执⾏./factorial.sh 5 8 10 factorial $2
factorial $3
##作为函数来讲,$1,$2,$3都是函数的第⼀个参数
-------------------------------------------------------------------------
使⽤let和shell的for循环
factorial()
{
factorial=1
for i in'seq $1'
do
let factorial=$factorial*$i
##或者let factorial*=$i
done
echo "10的阶乘:$factorial"
3.函数的返回值
函数的返回值:函数最后⼀条命令的执⾏结果,要么0,要么⾮0,但是可利⽤return⾃定义返回结果,但是不能超过255程序的返回值:程序最后⼀条命令的执⾏结果
return只能返回0-255的数
#!/bin/bash
fun2()
{
read -p "enter num:" num
let 2*$num
}
fun2
echo "fun2 return value: $?"
##上⼀个命令的返回值,这⾥是函数fun2()的返回值,是函数最后⼀条命令的返回的状态码:这⾥的
##最后⼀条命令是:let 2*$num
}
-------------------------------------------------------------------------
(1)函数的返回值
fun2()
{
read -p "enter num:" num
return $[2*$num]
}
fun2
echo "fun2 return value: $?"##shell的返回码最⾼是255,如果超过255就会报错
## ./return.sh
##enter num: 100
##200
-
-----------------------------------------------------------------------
(2)程序的返回值
fun2()
{
linux循环执行命令脚本
read -p "enter num:" num
echo $[2*$num]## ⾃定义函数的返回值,叫做函数的输出,可以是字符串
}
result=`fun2`  ##将函数的调⽤结果赋值给变量result
echo "fun2 return value: $resault"
## ./return.sh
##enter num: 200
##400

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。