Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >shell学习七函数 原

shell学习七函数 原

作者头像
用户2603479
发布于 2018-08-15 08:11:37
发布于 2018-08-15 08:11:37
28300
代码可运行
举报
文章被收录于专栏:JAVA技术站JAVA技术站
运行总次数:0
代码可运行

Shell 函数

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。

shell中函数的定义格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[ function ] funname [()]

{

    action;

    [return int;]

}

说明:

  • 1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
  • 2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255

下面的例子定义了一个函数并进行调用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"

带有返回值的函数,通过$?获取返回值如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $? !"

函数参数

在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...

带参数的函数示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

输出结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
第一个参数为 1 !
第二个参数为 2 !
第十个参数为 10 !
第十个参数为 34 !
第十一个参数为 73 !
参数总数有 11!
作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !

注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数。

另外,还有几个特殊字符用来处理参数:

参数处理

说明

$#

传递到脚本的参数个数

$*

以一个单字符串显示所有向脚本传递的参数

$$

脚本运行的当前进程ID号

$!

后台运行的最后一个进程的ID号

$@

与$*相同,但是使用时加引号,并在引号中返回每个参数。

$-

显示Shell使用的当前选项,与set命令功能相同。

$?

显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/10/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《前端运维》一、Linux基础--07Shell函数
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下:
zaking
2022/05/10
1.1K0
《前端运维》一、Linux基础--07Shell函数
03 . Shell数组和函数
Shell数组 简介 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。 与大部分编程语言类似,数组元素的下标由0开始。 Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下: # array_name=(value1 ... valuen) 实例 #!/bin/bash my_array=(A B "C" D) # 我们可以使用功能下标来定义数组 array_name[0]=value0 array_n
iginkgo18
2020/09/27
1.4K0
shell 流程控制及函数
不同于常见的 Java 以及 PHP 中的 if 条件语句,shell if 条件语句中不能包含空语句,也就是什么都不做的语句。
happyJared
2019/09/19
3970
Shell 函数
当n>=10时,需要使用${n}来获取参数。 另外,还有几个特殊字符用来处理参数:
小小工匠
2021/08/16
5050
Linux之shell编程函数使用
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。下面说说它的定义方法,以及调用需要注意那些事项。
intsmaze-刘洋
2018/08/29
5630
【知识总结】Shell脚本编程入门
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
辉哥
2021/04/01
4.4K0
《快学BigData》--Linux 编程(7)
if condition then statements [elif condition then statements. ..] [else statements ] fi
小徐
2023/03/06
1.6K0
《快学BigData》--Linux 编程(7)
Shell编程基础
请参考:菜鸟教程参数传递 在执行脚本的时候可以向脚本传递参数,脚本获取参数的格式为:$n
lin_zone
2018/08/15
7870
Shell 学习
%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
李振
2021/11/26
3910
Shell 函数(下)
注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数。
陈不成i
2021/06/23
3090
Shell 函数(上)
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。 shell中函数的定义格式如下:
陈不成i
2021/06/23
3240
Shell编程
Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务。
用户4870038
2021/02/05
5K0
Shell编程
Shell脚本编程
脚本中一旦遇到exit命令,脚本会立即终止,终止退出状态取决于exit命令后面的数字
星陨1357
2023/03/14
2.1K0
Shell脚本编程
Shell 编程入门 (转载非原创)
转载来源:https://www.cnblogs.com/lianzhilei/p/15316945.html
xlj
2021/09/23
1.7K1
Shell编程从看懂到看开③(函数、echo、printf、test)
在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...
十八岁讨厌编程
2022/12/10
6630
shell函数和重定向
# 1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
公众号-利志分享
2022/04/25
8190
shell脚本快速入门之-----函数
函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。像其他编程语言一样,shell也支持函数。shell函数必须先定义后使用
不吃小白菜
2020/09/03
9430
shell极简教程(二)
一,题记 不懂shell的程序员不是好程序员,学习shell是为了自动化,使用自动化可以非常有效的提高工作效率。没有一个大公司不要求linux的基本技能的,只是不同岗位要求掌握的程度不同。在第一篇 shell极简教程 已经对shell进行了简单的介绍,本篇进行更进一步的介绍! 二,shell注释 以“#”开头的行就是注释,会被解释器忽略。   sh里没有多行注释,只能每一行加一个#号。只能像这样: #-------------------------------------------- # 这是一个自动打
架构师小秘圈
2018/04/02
5.3K0
Shell编程从入门到精通
Shell 是一个用 C 语言编写的程序, 通过 Shell 用户可以访问操作系统内核服务。 它类似于 DOS 下的 command 和后来的 cmd.exe。 Shell既是一种命令语言,又是一种程序设计语言。
硅谷子
2020/12/19
8820
Shell编程从入门到精通
Shell入门
shell 脚本是个纯文本文件,命令从上而下,一行一行地开始执行。 shell 脚本第一行一定要为:#!/bin/bash
丁D
2022/08/12
7430
Shell入门
相关推荐
《前端运维》一、Linux基础--07Shell函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验