shell学习总结之自定义函数

Myfun (){
echo patams1 is $
echo -n "now i is $i "
! [ "$i" ] && exit ;
echo jj
return '' } myf=$(Myfun);
echo myf
Myfun unset Myfun Myfun echo 'the end !'$myf

别人的

#! bin/bash
# -------------------------------------------------------------------------------
# 文件名: Shell自定义函数总结.sh
# 版 本: 1.0
# 创建日期: //
# 描 述: shell中可以用户定义函数,然后在脚本中可以随便调用,下面是我总结的自定义函数的一些特性
# 作 者: 毕小朋
# 邮 箱: wirelessqa.me@gmail.com
# 博 客: http://blog.csdn.net/wirelessqa
# ------------------------------------------------------------------------------- function get_return_str()
{
echo "return \"$1\""
return $
} function get_return_int()
{
echo "return $(($1+$2))"
return $(($+$)) } function get_no_return()
{
echo "echo $(($1*2))"
} #声明全局变量
global_var="website: http://blog.csdn.net/wirelessqa" function get_global_var()
{
echo "函数内更改全局变量:global_var=\"name: bixiaopeng\""
global_var="name: bixiaopeng"
} function get_local_var()
{
echo "函数内声明局部变量:local local_var=\"weibo@wirelessqa\""
local local_var="weibo@wirelessqa"
} echo "自定义函数需知:"
echo "一.因为shell脚本是逐行运行。不会像其它语言一样先预编译,所以必须在调用函数地方之前,声明函数"
echo "二.各个输入参数直接用空格分隔,命令里面获得参数方法可以通过:$1…$n,$0为脚本名"
echo "三.函数返回值,只能通过$? 系统变量获得"
echo "四.局部变量要特别声明" echo "================ 测试加return的参数返回值 ================"
echo "注意:1.返回值只能是int,范围在0-255,调用方法和取得返回值之间,不能有任何操作,不然取不到return的值"
echo ""
echo "1. 测试0-255之间的参数返回值"
get_return_int
echo -e "参数返回值为:$? \n" echo "2. 测试>255的参数返回值"
get_return_int
echo -e "参数返回值为:$? \n" echo "3. 测试<0的参数返回值"
get_return_int - -
echo -e "参数返回值为:$? \n" echo "4. 测试参数返回值为字符,会报错"
get_return_str "my name is bixiaopeng" "abc"
echo -e "参数返回值为:$? \n" echo "================ 测试不加return的参数返回值 ================"
echo "注意:不加return将以最后一条命令运行结果作为返回值,正确为0,错误为1"
echo ""
echo "1. 最后一条命令执行正确,返回值为0"
get_no_return
echo -e "参数返回值为:$? \n" echo "2. 最后一条命令执行不正确,返回值为1"
get_no_return "my name is bixiaopeng"
echo -e "参数返回值为:$? \n" echo "================ 全局变量 ================ "
echo "global_var=\"website: http://blog.csdn.net/wirelessqa\""
get_global_var
echo "main函数现次调用全局变量: echo \$global_var"
echo $global_var echo "================ 局部变量 ================ "
get_local_var
echo "main函数现次调用局部变量: echo \$local_var"
echo $local_var

结果:

bixiaopeng@bixiaopengtekiMacBook-Pro Shell备忘录$ bash Shell自定义函数总结.sh
自定义函数需知:
一.因为shell脚本是逐行运行。不会像其它语言一样先预编译,所以必须在调用函数地方之前,声明函数
二.各个输入参数直接用空格分隔,命令里面获得参数方法可以通过:…,Shell自定义函数总结.sh为脚本名
三.函数返回值,只能通过0 系统变量获得
四.局部变量要特别声明
================ 测试加return的参数返回值 ================
注意:.返回值只能是int,范围在0-,调用方法和取得返回值之间,不能有任何操作,不然取不到return的值 . 测试0-255之间的参数返回值
return
参数返回值为: . 测试>255的参数返回值
return
参数返回值为: . 测试<0的参数返回值
return -
参数返回值为: . 测试参数返回值为字符,会报错
return "my name is bixiaopeng"
Shell自定义函数总结.sh: line : return: my: numeric argument required
参数返回值为: ================ 测试不加return的参数返回值 ================
注意:不加return将以最后一条命令运行结果作为返回值,正确为0,错误为1 . 最后一条命令执行正确,返回值为0
echo
参数返回值为: . 最后一条命令执行不正确,返回值为1
Shell自定义函数总结.sh: line : my name is bixiaopeng*: syntax error in expression (error token is "name is bixiaopeng*2")
参数返回值为: ================ 全局变量 ================
global_var="website: http://blog.csdn.net/wirelessqa"
函数内更改全局变量:global_var="name: bixiaopeng"
main函数现次调用全局变量: echo $global_var
name: bixiaopeng
================ 局部变量 ================
函数内声明局部变量:local local_var="weibo@wirelessqa"
main函数现次调用局部变量: echo $local_var

shell学习总结之自定义函数的更多相关文章

  1. linux shell学习笔记二---自定义函数(定义、返回值、变量作用域)介绍

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

  2. php学习笔记:自定义函数的调用

    PHP内置了超过1000个函数,因此函数使得PHP成为一门非常强大的语言.大多数时候我们使用系统的内置函数就可以满足需求,但是自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰. ...

  3. 【python学习之五】自定义函数实现用 Python 发送电子邮件

    前言 之前论坛里有人发过关于发送邮件的帖子,设计器也有关于发送邮件的控件.我这里再次重复,希望能有帮到大家的地方. 信息准备 发送邮件前必须准备好一些基本信息,例如发件人邮箱地址.发件人邮箱密码.收件 ...

  4. 《Shell脚本学习指南》学习笔记之自定义函数

    Shell的函数在使用之前必须先定义,定义格式: [ function ] funname [()] { action; [return int;] } 可以带function fun()定义,也可以 ...

  5. python学习笔记之自定义函数的导入

    python可以将自己编写的类放在py文件中,然后由其他程序调用,今天分享下:如何在shell中从文件引用自定义类和函数,下面是具体的过程: 第一步将你编写的文件声明编码类型 然后将你编写的文件保存为 ...

  6. swift学习笔记之—自定义函数的规则说明

    原文出自:www.hangge.com  转载请保留原文链接:http://www.hangge.com/blog/cache/detail_517.html 1,无返回值的函数 func test( ...

  7. shell自定义函数

    Linux中提供了很多内置的函数,但有时我们需要根据自己的需求来创建自定义函数.下面介绍一下关于shell编程中的自定义函数. 1.函数定义 function hello(){    echo &qu ...

  8. Hive自定义函数的学习笔记(1)

    前言: hive本身提供了丰富的函数集, 有普通函数(求平方sqrt), 聚合函数(求和sum), 以及表生成函数(explode, json_tuple)等等. 但不是所有的业务需求都能涉及和覆盖到 ...

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

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

随机推荐

  1. PHP代码实现MySQL读写分离

    关于MySQL的读写分离有几种方法:中间件,Mysql驱动层,代码控制 关于中间件和Mysql驱动层实现Mysql读写分离的方法,今天暂不做研究, 这里主要写一点简单的代码来实现由PHP代码控制MyS ...

  2. C语言---字符

    1.三元符(三字母词):由三个字符组合起来代表其他字符,三元符可以在没有一些字符时使用 ??( [ ??) ] ??! | ??< { ??> } ??' ^ ??= # ??/ \ ?? ...

  3. signal函数、sigaction函数及信号集(sigemptyset,sigaddset)操作函数

    信号是与一定的进程相联系的.也就是说,一个进程可以决定在进程中对哪些信号进行什 么样的处理.例如,一个进程可以忽略某些信号而只处理其他一些信号:另外,一个进程还可以选择如何处理信号.总之,这些总与特定 ...

  4. .NET学习笔记(4) — C#数据类型

    目录 一:C#数据类型介绍 二:值类型和引用类型的区别和联系? 三:堆内存和栈内存? 四:参考资料   一:C#数据类型介绍   1:初识C#预定义数据类型 在C#的语言体系中,表示具体数据格式的规范 ...

  5. 支持IE,FireFox,Chrome三大主流浏览器,通过js+Flash方式将table导出Excel文件

    今天在做项目的时候,遇到了前端下载Excel的功能,结果原先的代码,如下: function generate_excel(tableid) {        var table = document ...

  6. C# 高精度乘法 支持小数(待优化)

    将N*N乘法转化为(N*n1)+(N*n2)....(N*nn) 乘完后在补充小数点 public static char[] Quadrature(string a, string b) { ] { ...

  7. ios - cordova 简介

    Cordova 是一个可以让 JS 与原生代码(包括 Android 的 java,iOS 的 Objective-C 等)互相通信的一个库,并且提供了一系列的插件类,比如 JS 直接操作本地数据库的 ...

  8. UVA - 572 Oil Deposits(dfs)

    题意:求连通块个数. 分析:dfs. #include<cstdio> #include<cstring> #include<cstdlib> #include&l ...

  9. 06_例子讲解:rlPlanDemo

    规划器的例子程序: "E:\Program Files (x86)\rl-0.6.2\bin\rlPlanDemo.exe" "E:\Program Files (x86 ...

  10. 霍纳法则(Horner's rule)

    卡在hdu 1402 的高精度乘法了,要用FFT(快速傅里叶变换),然后看到了这个霍纳法则,顺便就写下来了. 霍纳法则:求多项式值的一个快速算法. 简单介绍: 假设有n+2个数 , a0,a1,a2, ...