14 shell 函数
- 1.shell函数的定义与调用
- 2.shell函数参数
- 3.函数返回值
1.shell函数的定义与调用
|
Shell 函数定义
|
说明
|
函数定义的简化写法
|
函数调用
|
|---|---|---|---|
| function name() { statements [return value] } |
|
1.定义函数时不写function关键字 name() { 2.定义时使用function关键字,但省略函数名后的小括号 function name { |
2. Shell 函数在定义时不能指明参数,但是在调用时却可以传递参数,并且给它传递什么参数它就接收什么参数。 3. Shell 也不限制定义和调用的顺序,你可以将定义放在调用的前面,也可以反过来,将定义放在调用的后面。 |
| 实例1 | 实例2 | 实例3 | 知识点 |
|
定义一个函数,输出 Shell 教程的地址:
运行结果: |
你可以将调用放在定义的前面,即:
运行结果: |
定义一个函数,计算所有参数的和:
运行结果: |
|
2.shell函数参数
Shell 中的函数在定义时不能指明参数,但是在调用时却可以传递参数
|
|
实例1
|
实例2
|
|---|---|---|
|
函数参数是 Shell 位置参数的一种,在函数内部可以使用
|
使用 $n 来接收函数参数。
运行结果: |
使用 $@ 来遍历函数参数
运行结果: |
数组作为参数传递
arr1=(1 2 3)
echo $arr1只会输出第一个元素1,如果传参数组时直接使用$arr1,同理也只会向函数中传递一个元素
正确方式是把参数写为"${arr1[*]}"才可以作为参数传递
以空格分割的字符串在作为参数传递时,最好也是要用双引号括起来
3.函数返回值
Shell函数返回值,常用的两种方式:return,echo
1) return 语句
return只能用来返回整数值。
3) echo 返回值
在shell中,函数的返回值有一个非常安全的返回方式,即通过输出到标准输出返回。因为子进程会继承父进程的标准输出,因此,子进程的输出也就直接反应到父进程。
但这种方式要注意一点,即不能向标准输出一些不是结果的东西(即不能随便echo一些不需要的信息)
| 大部分编程语言return 函数结果 | 在 C++、Java、Python 等大部分编程语言中,返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这个结果就通过 return 语句返回。 | |
|---|---|---|
| shell return退出状态 | Shell 中的返回值表示的是函数的退出状态:返回值为 0 表示函数执行成功了,返回值为非 0 表示函数执行失败(出错)了。if、while、for 等语句都是根据函数的退出状态来判断条件是否成立 |
Shell 函数的返回值只能是一个介于 0~255 之间的整数,其中只有 0 表示成功,其它值都表示失败。 如果函数体中没有 return 语句,那么使用默认的退出状态,也就是最后一条命令的退出状态。即默认返回为return $?
|
| shell 函数处理结果 |
获取函数处理结果
|
|
| 实例1 | 实例2 | |
|
将函数处理结果赋值给一个全局变量。
运行结果: |
在函数内部使用 echo 输出结果。
运行结果: |
14 shell 函数的更多相关文章
- shell 函数
1 shell函数的定义及其调用 shell函数有两种格式: function name { commands } name() { commands } 其中,name为函数名,commands为函 ...
- shell函数与数组
shell函数与数组 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么要使用shell函数 简单的说函数的作用就是把程序里多次调用的相同的代码部分定义成一份,然后起个名字, ...
- shell函数【参数传递及输入输出】&内置函数
Linux——shell脚本基础3:shell函数[参数传递及输入输出]&内置函数 函数定义 1 退出状态 1 参数传递 2 标准IO 2 脚本调试 2 AND&OR 3 内置命令补充 ...
- Shell入门教程:Shell函数详解
Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1.函数定义 ...
- Shell入门教程:Shell函数的返回值
shell函数返回值一般有3种方式: 1.return语句(默认的返回值) shell函数的返回值可以和其他语言的返回值一样,通过return语句返回. 比如: #!/bin/bash functio ...
- (转)Shell函数
Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1. 函数 ...
- Linux Shell系列教程之(十五) Shell函数简介
本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...
- Shell函数的简单应用
Shell函数的简单应用 在脚本内给函数传参: #!/bin/bash . /etc/init.d/functions CheckUrl (){ curl -I -s $ | head - } Che ...
- Shell函数语法
Shell函数语法 定义函数: function 函数名(){ 指令... } 调用函数,方法1: 函数名 调用函数,方法2: 函数名 参数一 参数二 return在函数里面使用会跳出函数并 ...
随机推荐
- 标准Gitlab命令行操作指导
gitlab是一个分布式的版本仓库,总比只是一个本地手动好些,上传你的本地代码后后还能web GUI操作,何乐不为? 贴上刚刚搭建的gitlab,看看git 如何操作标准命令行操作指导 1.命令行操作 ...
- Go语言常用命令
查看可用命令 直接在终端中输入 go help 即可显示所有的 go 命令以及相应命令功能简介,主要有下面这些: ·build: 编译包和依赖 ·clean: 移除对象文件 ·doc: 显示包或者符号 ...
- Ubuntu中的MySQL修改root密码的多种方法
查看.修改mysql的用户名和密码第一步:这时你需要进入/etc/mysql目录下,然后sudo vim/vi debian.cnf查看里面的用户名和密码,然后使用这个文件中的用户名和密码进入mysq ...
- 灵动微电子ARM Cortex M0 MM32F0010 GPIO 的配置驱动LED灯
灵动微电子ARM Cortex M0 MM32F0010 GPIO的配置 目录: 1.前言 2.学习方法简要说明 3.要点提示 4.注意事项 5.MM32F0010系统时钟的配置 6.MM32F001 ...
- 物联网设备OTA软件升级之:升级包下载过程之旅
OTA概述 大家好,我是一个软件升级包.这几天呢,我将会进行一次神奇的网络之旅,从开发者的电脑中,一直跑到终端嵌入式设备中. 大家都把我的这个旅游过程叫做 OTA,也就是在线升级. 那么啥叫 OTA ...
- Jittor框架API
Jittor框架API 这里是Jittor主模块的API文档,可以通过import jittor来获取该模块. classjittor.ExitHooks exc_handler(exc_type, ...
- JVM Ecosystem Report 2020 (2020年JVM生态系统报告)
本文翻译自SNYK于2020年发布的< JVM Ecosystem Report 2020 >,全文使用机器翻译自动生成,人为将翻译的离谱和翻译明显错误的地方修正到勉强能看懂的程度. 英语 ...
- liunx:网络命令
现系统的学习一下Web渗透相关的命令 ping ping 命令是用来测试TCP/IP 网络是否畅通或者测试网络连接速度的命令,对确定网络是否正确连接,以及网络连接的状况十分有用.简单的说,ping就是 ...
- kube-proxy IPVS 模式的工作原理
原文链接:https://fuckcloudnative.io/posts/ipvs-how-kubernetes-services-direct-traffic-to-pods/ Kubernete ...
- Samba 服务基础
配置SMB共享,跨平台的共享,Windows与Linux的共享 • Samba 软件项目 用途:为客户机提供共享使用的文件夹 协议:SMB(TCP 139).CIFS(TCP 445) • 所需软件包 ...