shell函数大全

一、Shell函数

1.1、概念

将命令序列按格式写在一起
可方便重复使用命令序列

1.2、Shell函数定义:

(1)
function 函数名 {
命令序列
}
(2)
函数名 () {
命令序列
}

1.3、函数返回值:

return表示退出函数并返回一个退出值,脚本中可以用 ? 变 量 显 示 该 值 使 用 原 则 : ( 1 ) 、 函 数 一 结 束 就 取 返 回 值 , 因 为 ?变量显示该值使用原则: (1)、函数一结束就取返回值,因为 ?使:1?变量只返回执行的最后一条命令的退出状态码
(2)、退出状态码必须是0~255,超出时值将为除以256取余

二、函数传参

函数传参:
sum1 () {
sum=$[$1 + $2]
echo $sum
}
read -p"输入第一个参数:" first
read -p"输入第二个参数:" second
sum1 $first $second

sum2 () {
sum=$[$1 + $2]
echo $sum
sum2 $1 $2

三、函数变量的作用范围

函数变量的作用范围:
函数在shell脚本中仅在当前shell环境中有效Shell脚本中变量默认全局有效
将变量限定在函数内部使用local命令
myfun () {
local i
i=8
echo $i
}
i=9
myfun
echo $i

四、递归

函数调用自己本身的函数

4.1、阶乘

fact () {
if[ 1 − e q 1 ] t h e n e c h o 1 e l s e l o c a l t e m p = 1 -eq 1 ] then echo 1 else local temp= 1eq1]thenecho1elselocaltemp=[ 1 − 1 ] l o c a l r e s u l t = 1 - 1] local result= 11]localresult= (fact $temp)
echo $[$1 * $result]
# 5 * $result (4* $result (3* r e s u l t ( 2 ∗ result(2* result(2result(1) ) ))
fi
}
read -p"请输入:" n
result=$ (fact $n)
echo $result

4.2、递归目录

#递归目录
function list_files () {
for f in`ls $1~
do
if [ -d “ 1 / 1/ 1/f” ]
then
echo “ 2 2 2f”
list_files “ 1 / 1/ 1/f” " $2"
else
echo “ 2 2 2f”
fi
done
}
listfiles “/var/log” “”

五、创建库(函数库)

创建库
vim myfuncs. sh
jiafa () {
echo $[$1 + $2]|
}
chengfa () {
echo $[$1 * $2]
chufa () {
if[ $2 -ne 0 ];thenecho $[$1 / $2]else
echo "$2不能为0"fi
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值