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函数的更多相关文章

  1. linux shell自定义函数(定义、返回值、变量作用域)介绍

    http://www.jb51.net/article/33899.htm linux shell自定义函数(定义.返回值.变量作用域)介绍 linux shell 可以用户定义函数,然后在shell ...

  2. shell获取函数的返回值

    背景:定义了一个函数,比对本地和线上服务器集群数量差别,想要获取不同集群的个数.shell和其他语言的函数返回值还是差别挺大的.   定义一个函数 functionname(){      操作内容 ...

  3. 转 linux shell自定义函数(定义、返回值、变量作用域)介绍

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...

  4. Linux操作系统shell与函数详解

    shell和函数的定义 1. linux  shell 函数 将一组命令集或语句形成一个可用的块, 这些语句块称为函数. 2. shell  函数的组成 函数名:函数名字,注意一个脚本中函数名要唯一, ...

  5. shell 中函数放回字符串问题

    shell 中函数放回字符串问题 shell 中不可以直接 return 字符串 ,可以return 数字.如果要return 字符串 改为 echo "hello world" ...

  6. shell从函数文件里调用函数

    碰到一个shell中函数调用的小问题,记录一下. shell中函数有三种调用方式,一种是在文件前面定义函数,然后在以下直接调用:一种是通过加载shell,在shell中直接调用:第三种是将函数写入文件 ...

  7. Linux shell 自定义函数

    一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带functi ...

  8. shell脚本--函数

    shell的函数和Javacript和php的函数声明一样,只不过shell在调用函数的时候,只需要写函数名就可以调用函数,注意不要在函数名后面加括号 创建并使用函数 #!/bin/bash #文件名 ...

  9. shell进阶函数

    函数的定义和用途 函数function是由若干条shell命令组成的语句块,实现shell代码的重用和模块化编程. 函数和shell程序的异同点 它与shell程序形式上是相似的,不同的是它不是一个单 ...

随机推荐

  1. MyEclipse教程:使用UML创建模块库——第一部分(二)

    MyEclipse 在线购买低至75折!火爆开抢>> [MyEclipse最新版下载] UML1建模文件存储在建模库中,建模可用于生成Java代码,或者可以从代码中生成模型.本教程将向您展 ...

  2. L220

    He must not allow this unusual barrier (obstacle) to stop him from fighting against the enemy.他绝不能让这 ...

  3. 设置 placeholder 字体颜色 : ::

    ::-webkit-input-placeholder {  color: red;} :-moz-placeholder {  color: red;}::-moz-placeholder{colo ...

  4. C#foreach的用法

    static void Main(string[] args)        {            int[] a = new int[5] { 1, 2, 3, 4, 5 };          ...

  5. C#Delegate.Invoke、Delegate.BeginInvoke And Control.Invoke、Control.BeginInvoke

    作者:EasonLeung 一.Delegate的Invoke.BeginInvoke 1.Delegate.Invoke (委托同步调用) a.委托的Invoke方法,在当前线程中执行委托. b.委 ...

  6. 20155315 2016-2017-2 《Java程序设计》第九周学习总结

    教材学习内容总结 1.JDBC架构 数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网 ...

  7. Ubuntu 16.04下指定Sublime Text 3 默认python编译版本

    安装PackageResourceViewer插件 输入 Ctrl+Shift+P 输入install,选择Package Control: Install Package 选择PackageReso ...

  8. test20181007 wzoi

    题意 分析 考场40分 错误的Manacher+dp. 用\(f(i)\)表示\(s_{1 \sim i}\)的最长偶数回文覆盖长度,在Manacher的同时用刷表法转移,每次还要对\(f(i-1)\ ...

  9. ==,equals,hashcode

    总结:== 基本类型比较值,引用类型比较是不是同一个对象,也就是比较内存地址 equals 在没有覆盖的情况下是比较 引用的地址的  和 == 一样 hashcode 和equals关系: hashc ...

  10. WPF 带CheckBox、图标的TreeView(转)

    在WPF实际项目开发的时候,经常会用到带CheckBox的TreeView,虽然微软在WPF的TreeView中没有提供该功能,但是微软在WPF中提供强大的ItemTemplate模板功能和自定义样式 ...