layout: post
title: Shell的函数
date: 2017-12-31
tags: [“Linux”,”Shell脚本管理”]


函数由两部分组成:函数名和函数体
help function #查看function的帮助

  1. 语法一:
  2. f_name (){
  3. ...函数体...
  4. }
  5. 语法二:
  6. function f_name {
  7. ...函数体...
  8. }
  9. 语法三:
  10. function f_name () {
  11. ...函数体...
  12. }

函数的特性

可在交互式环境下定义函数
可将函数放在脚本文件中作为它的一部分
可放在只包含函数的单独文件中
调用:函数只有被调用才会执行
调用:给定函数名
函数名出现的地方,会被自动替换为函数代码
函数的生命周期:被调用时创建,返回时终止

函数返回值

函数的执行结果返回值:
(1) 使用echo等命令进行输出
(2) 函数体中调用命令的输出结果
函数的退出状态码:
(1) 默认取决于函数中执行的最后一条命令的退出状态码
(2) 自定义退出状态码,其格式为:
return 从函数中返回,用最后状态命令决定返回值
return 0 无错误返回。
return 1-255 有错误返回

删除shell函数

unset function_name

环境函数

使子进程也可使用
声明:export -f function_name
查看:export -f 或 declare -xf

fork炸弹

函数实现
:(){ :’:& };:
bomb() { bomb ‘ bomb & }; bomb
脚本实现
cat Bomb.sh

!/bin/bash

./$0’./$0&

文档更新时间: 2018-12-13 15:59   作者:张尚