为什么80%的码农都做不了架构师?>>>   

一. 函数定义

语法:

[function] functionname[()]{action;[return int;]
}

说明:

1、可以带function fun()  定义,也可以直接fun() 定义,不带任何参数。

2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255

#!/bin/shbuild(){echo $1, $2;return $(($1+$2))
}
build 5 7;total=$(build 3 2);echo $totle, $?

从上面这个例子我们可以得到几点结论:

1、必须在调用函数地方之前,声明函数,shell脚本是逐行运行。不会像其它语言一样先预编译。一次必须在使用函数前先声明函数。

2、total=$(fSum 3 2);  通过这种调用方法,我们清楚知道,在shell 中 单括号里面,可以是:命令语句。 因此,我们可以将shell中函数,看作是定义一个新的命令,它是命令,因此 各个输入参数直接用 空格分隔。 一次,命令里面获得参数方法可以通过:$0…$n得到。 $0代表函数本身。

3、函数返回值,只能通过$? 系统变量获得,直接通过=,获得是空值。其实,我们按照上面一条理解,知道函数是一个命令,在shell获得命令返回值,都需要通过$?获得。

二. 函数作用域

#!/bin/shecho $(uname);
declare num=1000;uname()
{echo "test!";((num++));return 100;
}
testvar()
{local num=10;((num++));echo $num;}uname;
echo $?
echo $num;
testvar;
echo $num;sh testfun2.sh
Linux
test!
100
1001
11
1001

我们一起来分析下上面这个实例,可以得到如下结论:

1、定义函数可以与系统命令相同,说明shell搜索命令时候,首先会在当前的shell文件定义好的地方查找,找到直接执行。

2、需要获得函数值:通过$?获得

3、如果需要传出其它类型函数值,可以在函数调用之前,定义变量(这个就是全局变量)。在函数内部就可以直接修改,然后在执行函数就可以读出修改过的值。

4、如果需要定义自己变量,可以在函数中定义:local 变量=值 ,这时变量就是内部变量,它的修改,不会影响函数外部相同变量的值 。

转载于:https://my.oschina.net/uabao/blog/498901

shell 函数定义和调用相关推荐

  1. matlab调用sh函数,Shell 函数定义与调用

    linux shell 可以用户定义函数,然后在 shell 脚本中可以随便调用. 以一个计算两数之和的函数为例: #! /bin/bash # 函数定义 sum(){ return $(($1+$2 ...

  2. 函数使用(函数定义及调用方式、传参与返回参数、命名空间、装饰器)

    函数定义及调用方式 一. 定义函数 1. 自定义函数的规则 • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ().     • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以 ...

  3. shell函数定义、函数调用及函数返回值用法

    1.函数定义 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.Shell 函数定义的语法格式如下: [function] funname [()]{     函数体    ...

  4. C++ Primer 第五版 第6章 6.1——函数及函数定义及调用习题答案

    理论讲解请参考:C++ Primer 第五版 第6章 6.1 函数及函数定义及调用阅读笔记 目录 目录 6.1 形参和实参的区别 6.2 函数语法考察 6.4 交互式输入数字,计算阶乘 6.5 输出实 ...

  5. C++ Primer 第五版 第6章 6.1——函数及函数定义及调用阅读笔记

    习题答案请参考:C++ Primer 第五版 第6章 6.1 函数及函数定义及调用习题答案 目录 6.1 函数基础 函数定义 函数调用 函数的形参和实参 函数的返回类型 局部静态对象 函数声明 头文件 ...

  6. Python编程基础:实验5——函数定义与调用

    Python编程基础:实验5--函数定义与调用 文章目录 Python编程基础:实验5--函数定义与调用 一.前言 二.我的环境 三.实验目的与要求 四.实验任务 1.程序填空 2.程序编程 五.最后 ...

  7. python函数定义与调用

    python函数定义与调用 python函数定义与调用 函数定义 函数参数 函数调用 ==**文章导航:==** python函数定义与调用 如果我们用代码实现了一个小功能,但想要在程序代码中重复使用 ...

  8. Python 函数定义与调用

    ☞☞☞点击查看更多优秀Python博客☜☜☜ Python 函数定义与调用 Python 函数定义与调用 函数的定义 函数的调用: ==**文章导航:==** Python 函数定义与调用 函数是组织 ...

  9. matlab函数定义和调用

    Matlab函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Matlab提供了许多内建函数,比如disp().但你也可以 ...

最新文章

  1. 高速串行总线的设计基础(一)同步时序模型介绍
  2. 提高你30%的设计效率的PPT快捷键
  3. PW Live 直播 | 清华大学博士生岂凡超:义原知识库的应用和扩充
  4. JSON开发详解-张晨光-专题视频课程
  5. 关于Web面试的基础知识点--Html+Css(三)
  6. FastReport studio 动态加载数据集 (zhuan)
  7. html表格编辑器退出编辑状态,易优后台编辑器取消html标签(比如表格属性等)过滤解决方法...
  8. php百度搜索接口api,百度开放平台API调用
  9. socket多人聊天室c语言,WebSocket学习(一)——基于socket.io实现简单多人聊天室...
  10. java 小程序 自己学习
  11. 关于构建网络安全知识库方向相关知识的学习和思考
  12. c语言blackjack设计思路,写一个“BlackJack ”Java应用程序 该计划将测试你的逻辑思维。...
  13. 文字转语音:CyberBukit TTS for php 1.2.3
  14. 《穆斯林的葬礼》读后感
  15. h5微信授权php,接入微信授权
  16. 网站统计 开源 java_开源 java CMS - FreeCMS2.8 统计分析
  17. Artifact is deployed successfully
  18. 华为od一面面试算法
  19. python职业规划书范文_大学机器人工程专业职业生涯规划范文(8篇)
  20. java spit 点_如何在PyGame中按时间点增加精灵的spit

热门文章

  1. MKL学习——矩阵矩阵操作
  2. Python 命令汇总
  3. 多GPU运行Deep Learning 和 并行Deep Learning(待续)
  4. 洛谷模板,树状数组二 差分
  5. 记录一次查询log的经历
  6. zabbix实现mysql数据库的监控
  7. Python实现线性回归2,梯度下降算法
  8. salesforce lightning零基础学习(三) 表达式的!(绑定表达式)与 #(非绑定表达式)
  9. UVA 3485 Bridge
  10. 【9018:1956】线段树1