Shell 函数的定义和使用
目录
一、Shell的函数的定义
1.1定义
1.2 函数返回值
1.3 函数传参
1.4 函数变量的作用范围
1.5 函数递归
1.5.1 阶乘
1.5.2 递归目录
1.6 创建库
一、Shell的函数的定义
1.1定义
- 将命令序列按格式写在一起
- 可方便重复使用命令序列
[1]
function函数名{命令序列
}[2]
函数名() {命令序列
示例1:
示例2:调用函数,创建用户
1.2 函数返回值
return表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值。
使用原则:
1、函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码。
2、退出状态码必须是0~255,超出时值将为除以256取余。
return echo两种输出函数的获取方法
function db1 {read -p "请输入: " valuereturn $[$value * 2]}db1echo $?db1 () {read -p "请输入: " valueecho $[$value * 2]
}result=`db1`echo $result
示例1:利用函数输出一个数值为设定数值num的两倍
1.3 函数传参
格式:
函数传参:sum1 () {sum=$[$1 + $2]echo $sum}read -p "输入第一个参数: " firstread -p "输入第二个参数: " secondsum1 $first $secondsum2 () {sum=$[$1 + $2]echo $sum}sum2 $1 $2
示例1:
示例2:
$1--10 $4--40,所以输出值为10+40=50
1.4 函数变量的作用范围
- 函数在Shell脚本中仅在当前Shell环境中有效。
- Shell脚本中变量默认全局有效。
- 将变量限定在函数内部使用local命令。
linux全局变量局部变量
- 全局变量:变量作用于整个操作系统所有用户的shell环境内。
- 局部变量:变量只作用于当前shell环境内。
shell脚本全局变量局部变量
- 全局变量:作用于shell脚本当前的整个shell环境内,包括所有函数体内或函数体外。
- 局部变量:作用于shell脚本当前的sdell环境内,仅限制于某个函数体内。
格式:
myfun() {local ii=8echo $i}i=9myfunecho $i
示例:
1.5 函数递归
函数调用自己本身的函数
1.5.1 阶乘
fact () {if [ $1 -eq 1 ]thenecho 1
elselocal temp=$[$1-1]local result=$(fact $temp)echo $[$1 * $result]# 5 * $result(4*$result(3*$result(2*$result(1))))fi}######## main ########read -p "请输入" n
result=$(fact $n)
echo $result
示例:算一个数的阶乘,以数值8为例
1.5.2 递归目录
function list_files {
for f in `ls $1`
doif [ -d "$1/$f" ]thenecho "$2 目录是 $f"list_files "$1/$f" "$2"elseecho "$2 文件是 $f"fi
done
}list_files "/var/log" ""
1.6 创建库
vim myfuncs.sh
#!/bin/bash
jiafa () {echo $[$1 + $2]
}jianfa () {echo $[$1 - $2]
}chengfa () {echo $[$1 * $2]
}chufa () {if [$2 -ne 0]thenecho $[$1 / $2]elseecho "$2 不能为0"fi
}fact () {if [ $1 -eq 1 ]thenecho 1elif [ $1 -eq 0 ]thenecho 0elselocal temp=$(jianfa $1 1)local result=$(fact $temp)#echo $[$1 * $result]echo $(chengfa $1 $result)fi
}vim test.sh . myfuncs.shvalue1=$1value2=$2result=$(jiafa $value1 $value2)result2=$(chufa $value1 $value2)result3=$(fact $value1)echo "加法结果为: $result"
echo "除法结果为: $result2"
echo "阶乘结果为: $result3"
Shell 函数的定义和使用相关推荐
- bash shell函数的定义及变量的简单说明
From: http://blog.sina.com.cn/s/blog_4ce3a68a0100i77a.html 函数: "函数是一种脚本内脚本",程序员很难想像没有函数的日子 ...
- Shell函数的定义及用法
1.Shell函数 利用Shell函数为报告生成程序添加下内容 输出系统正常运行时间和负载,这是自上次关机或重启之后系统的运行时长,以及在若干时间间隔内,当前运行在处理器上的平均任务量 输出磁盘空间, ...
- Shell函数详解(函数定义、函数调用)
Shell 函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接调取即可. Shell 中的函数和C++.Java.Python.C# 等其它编程语言中的函数类 ...
- Shell函数(函数定义、函数变量、函数调用、函数传参、函数返回值、获取函数返回值)
分享知识 传递快乐 1.函数定义 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.Shell 函数定义的语法格式如下: [function] funname [()]{函 ...
- shell函数定义、函数调用及函数返回值用法
1.函数定义 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.Shell 函数定义的语法格式如下: [function] funname [()]{ 函数体 ...
- linux使用shell函数扩充命令,Linux Shell系列教程之(十五) Shell函数简介 | Linux大学...
摘要 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高. 高级语言都支持函数,Shell也不例外.今天就为大家介绍下Shell中函数相关用法. 函数可以将一个复杂功能划 ...
- Shell函数返回值、删除函数、在终端调用函数
Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () {list of commands[ return value ] } ...
- Shell函数:Shell函数返回值、删除函数、在终端调用函数
函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: f ...
- Shell 脚本知识回顾 (六) —— Shell 函数
一.Shell函数:Shell函数返回值.删除函数.在终端调用函数 函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Sh ...
最新文章
- 关于webrtc视频会议的解决方案
- optee系统服务/service的实现方式
- Apache Shiro的运行流程和权限控制方式分析
- cad图框尺寸标准图_工程必备 | CAD图纸1:100打印可以量取的尺寸
- 线程池ThreadPool,线程池底层ThreadPoolExecutor方法七大参数,拒绝策略,以及实际开发中高并发下用到哪个线程池?
- 怎么用计算机杀毒,电脑怎样查杀病毒
- github ssl验证跳过
- boost::asio
- debian下apr-get isntall 出错提示用apt-get -f install问题
- windows操作系统_国产Linux操作系统体验:易用性不比Windows差,但输在这点上
- JavaWeb之Servlet编程
- JMeter安装及使用
- matlab二次曲线插补,圆弧插补器插补非圆二次曲线的方法
- 电力GIS技术应用及若干相关问题
- win7 把html作为桌面,微软开始部署桌面HTML5版必应Bing
- 使用两个路由器级连实现共用一个宽带
- Unity3d开发MOBA游戏类《王者荣耀》记录(一)
- 数学建模学习(7):分支结构与循环结构详解
- php取网盘真实链接,【已解决】获取蓝奏云真实链接问题?
- 关于2022考研报名,这些你需要知道