shell 11函数
1. 函数定义
function 方法名(){ #注意:function可加可不加
command
return int;
}
2. 不带返回值的函数
#!/bin/sh
function fun1(){
echo "hello world"
}
echo "start"
fun1
echo "end"
start
hello world
end
3. 带return返回值的函数
注意:如果不加return,将以最后一条命令的运行结果作为返回值。return后跟数值n(0-255)。
#!/bin/sh
fun1(){
echo "开始计算"
read -p "请输入第一个数字:" numA
read -p "请输入第二个数字:" numB
return $(($numA+$numB))
}
echo "start"
fun1
echo "结果:$?"
echo "end"
start
开始计算
请输入第一个数字:5
请输入第二个数字:4
结果:9
end
3. 函数参数
在shell中,调用函数可以向其传递参数。在函数内部,通过$n的形式来获取参数的值。例如$1表示第一个参数,$2表示第二个参数...
#!/bin/sh
fun1(){
echo "第一个参数:$1"
echo "第二个参数:$2"
echo "第十个参数:$10"
echo "第十参数:${10}"
echo "参数个数:$#"
echo "以一个字符串列出所有参数:$*"
}
fun1 1 2 3 4 5 6 7 8 9 47
第一个参数:1
第二个参数:2
第十个参数:10
第十参数:47
参数个数:10
以一个字符串列出所有参数:1 2 3 4 5 6 7 8 9 47
注意:\(10不能获取第10个参数,获取第10个参数需要使用\){10}。当n>=10时,需要使用${n}来获取参数
其他处理参数的特殊字符:
- $# 传递到脚本的参数个数
- $* 以一个单字符串显示所有向脚本传递的参数
- \[ 脚本运行的当前进程ID号
\] - \(@ 与\)*相同,但是使用时加引号,并在引号中返回每个参数。
- $- 显示Shell使用的当前选项,与set命令功能相同。
- $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
shell 11函数的更多相关文章
- linux shell自定义函数(定义、返回值、变量作用域)介绍
http://www.jb51.net/article/33899.htm linux shell自定义函数(定义.返回值.变量作用域)介绍 linux shell 可以用户定义函数,然后在shell ...
- shell获取函数的返回值
背景:定义了一个函数,比对本地和线上服务器集群数量差别,想要获取不同集群的个数.shell和其他语言的函数返回值还是差别挺大的. 定义一个函数 functionname(){ 操作内容 ...
- 转 linux shell自定义函数(定义、返回值、变量作用域)介绍
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...
- Linux操作系统shell与函数详解
shell和函数的定义 1. linux shell 函数 将一组命令集或语句形成一个可用的块, 这些语句块称为函数. 2. shell 函数的组成 函数名:函数名字,注意一个脚本中函数名要唯一, ...
- shell 中函数放回字符串问题
shell 中函数放回字符串问题 shell 中不可以直接 return 字符串 ,可以return 数字.如果要return 字符串 改为 echo "hello world" ...
- shell从函数文件里调用函数
碰到一个shell中函数调用的小问题,记录一下. shell中函数有三种调用方式,一种是在文件前面定义函数,然后在以下直接调用:一种是通过加载shell,在shell中直接调用:第三种是将函数写入文件 ...
- Linux shell 自定义函数
一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带functi ...
- shell脚本--函数
shell的函数和Javacript和php的函数声明一样,只不过shell在调用函数的时候,只需要写函数名就可以调用函数,注意不要在函数名后面加括号 创建并使用函数 #!/bin/bash #文件名 ...
- shell进阶函数
函数的定义和用途 函数function是由若干条shell命令组成的语句块,实现shell代码的重用和模块化编程. 函数和shell程序的异同点 它与shell程序形式上是相似的,不同的是它不是一个单 ...
随机推荐
- MyEclipse教程:使用UML创建模块库——第一部分(二)
MyEclipse 在线购买低至75折!火爆开抢>> [MyEclipse最新版下载] UML1建模文件存储在建模库中,建模可用于生成Java代码,或者可以从代码中生成模型.本教程将向您展 ...
- L220
He must not allow this unusual barrier (obstacle) to stop him from fighting against the enemy.他绝不能让这 ...
- 设置 placeholder 字体颜色 : ::
::-webkit-input-placeholder { color: red;} :-moz-placeholder { color: red;}::-moz-placeholder{colo ...
- C#foreach的用法
static void Main(string[] args) { int[] a = new int[5] { 1, 2, 3, 4, 5 }; ...
- C#Delegate.Invoke、Delegate.BeginInvoke And Control.Invoke、Control.BeginInvoke
作者:EasonLeung 一.Delegate的Invoke.BeginInvoke 1.Delegate.Invoke (委托同步调用) a.委托的Invoke方法,在当前线程中执行委托. b.委 ...
- 20155315 2016-2017-2 《Java程序设计》第九周学习总结
教材学习内容总结 1.JDBC架构 数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网 ...
- Ubuntu 16.04下指定Sublime Text 3 默认python编译版本
安装PackageResourceViewer插件 输入 Ctrl+Shift+P 输入install,选择Package Control: Install Package 选择PackageReso ...
- test20181007 wzoi
题意 分析 考场40分 错误的Manacher+dp. 用\(f(i)\)表示\(s_{1 \sim i}\)的最长偶数回文覆盖长度,在Manacher的同时用刷表法转移,每次还要对\(f(i-1)\ ...
- ==,equals,hashcode
总结:== 基本类型比较值,引用类型比较是不是同一个对象,也就是比较内存地址 equals 在没有覆盖的情况下是比较 引用的地址的 和 == 一样 hashcode 和equals关系: hashc ...
- WPF 带CheckBox、图标的TreeView(转)
在WPF实际项目开发的时候,经常会用到带CheckBox的TreeView,虽然微软在WPF的TreeView中没有提供该功能,但是微软在WPF中提供强大的ItemTemplate模板功能和自定义样式 ...