首页 > 系统服务 > 详细

shell 函数

时间:2020-05-15 11:18:04      阅读:40      评论:0      收藏:0      [点我收藏+]

函数定义

格式1

function fname() 
{
	Code Block
	......
}

格式2

fname()
{
	Code Block
	......
}

格式3

fname() { Code Block ; }  # ;必须要有{} 和代码块之间要有至少一个空格 

函数调用

不带参数

function fname()
{
      echo "In fname function."
}
fname  # 直接使用函数名即可调用

带参数

function fname() 
{
	echo $0  # $0为函数名
	echo $1  # $1为函数的第一个参数
	echo $@  # $@为所有参数
	echo $#  # $#为参数的数量
}
fname a b c  # arg1就是第一个参数

递归函数

function fname() 
{
	fname # 在定义的函数内部执行函数本身
}

Fork炸弹

:(){ :|:& };:

# 该函数会不断生成新的进程直至耗尽系统资源,可以通过修改件/etc/security/limits.conf nproc限制最大打开进程数

# :是函数名
# ()是语法中的()
# { 代表代码块开始
# :是在内部执行函数
# |是把结果发给:函数执行
# & 表示放到后台执行
# } 表示函数的代码块结束
# ;命令分隔符
# :调用刚刚定义的函数

导出函数

function demo() {  echo "In demo function."; }
echo demo > demo.sh
sh demo.sh # 此时调用会报错demo not found 
export -f demo 
sh demo.sh # 此时调用会正常demo函数中的语句

shell 函数

原文:https://www.cnblogs.com/liy36/p/12893427.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!