shell学习总结之自定义函数

shell学习总结之自定义函数

Myfun (){
 echo patams1 is $1
 echo -n "now i is $i "
 ! [ "$i" ] && exit ;
 echo jj
 return ‘1‘

}

myf=$(Myfun);
echo myf
Myfun 12

unset  Myfun

Myfun

echo ‘the end !‘$myf

别人的

#! bin/bash
# -------------------------------------------------------------------------------
# 文件名:  Shell自定义函数总结.sh
# 版 本:   1.0
# 创建日期: 2014/02/12
# 描 述:   shell中可以用户定义函数,然后在脚本中可以随便调用,下面是我总结的自定义函数的一些特性
# 作 者:   毕小朋
# 邮 箱:   [email protected]
# 博 客:   http://blog.csdn.net/wirelessqa
# -------------------------------------------------------------------------------

function get_return_str()
{
   echo "return \"$1\""
    return $1
}

function get_return_int()
{
    echo "return $(($1+$2))"
    return $(($1+$2))

}

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=\"[email protected]\""
    local local_var="[email protected]"
}

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 2 253
echo -e "参数返回值为:$? \n"

echo "2. 测试>255的参数返回值"
get_return_int 10 253
echo -e "参数返回值为:$? \n"

echo "3. 测试<0的参数返回值"
get_return_int -1 -2
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 255
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

结果:

[email protected] Shell备忘录$ bash Shell自定义函数总结.sh
自定义函数需知:
一.因为shell脚本是逐行运行。不会像其它语言一样先预编译,所以必须在调用函数地方之前,声明函数
二.各个输入参数直接用空格分隔,命令里面获得参数方法可以通过:…,Shell自定义函数总结.sh为脚本名
三.函数返回值,只能通过0 系统变量获得
四.局部变量要特别声明
================ 测试加return的参数返回值 ================
注意:1.返回值只能是int,范围在0-255,调用方法和取得返回值之间,不能有任何操作,不然取不到return的值

1. 测试0-255之间的参数返回值
return 255
参数返回值为:255

2. 测试>255的参数返回值
return 263
参数返回值为:7

3. 测试<0的参数返回值
return -3
参数返回值为:253

4. 测试参数返回值为字符,会报错
return "my name is bixiaopeng"
Shell自定义函数总结.sh: line 6: return: my: numeric argument required
参数返回值为:255

================ 测试不加return的参数返回值 ================
注意:不加return将以最后一条命令运行结果作为返回值,正确为0,错误为1

1. 最后一条命令执行正确,返回值为0
echo 510
参数返回值为:0

2. 最后一条命令执行不正确,返回值为1
Shell自定义函数总结.sh: line 18: my name is bixiaopeng*2: syntax error in expression (error token is "name is bixiaopeng*2")
参数返回值为:1

================ 全局变量 ================
global_var="website: http://blog.csdn.net/wirelessqa"
函数内更改全局变量:global_var="name: bixiaopeng"
main函数现次调用全局变量: echo $global_var
name: bixiaopeng
================ 局部变量 ================
函数内声明局部变量:local local_var="[email protected]"
main函数现次调用局部变量: echo $local_var

shell学习总结之自定义函数,布布扣,bubuko.com

时间: 06-15

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

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

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数. 2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值. retu

Shell脚本中的自定义函数

在写程序时,经常会用到函数,一般开发工具拥有丰富的函数库.但有时还需要根据自己的需要自定义函数满足我们的需求. 在linux中,写shell脚本也一样,有时会用到自定义函数. 函数,最简单的定义为:将一组命令集或语句形成一个可用块,这些块称为函数. 1.定义函数的格式: function-name ( ){ command1 ........ } 或 #函数名前面也可以加上function关键字 function function-name( ) { command1 ........ } 2.

shell学习三十一天----函数问题

函数 案例一: #!/bin/bash hello () { echo "hahahah" } hello 执行函数,结果为:hahaha 案例二: #!/bin/bash funWithReturn() { echo "the function is to get the sum of two number" read -p "input first number" num1 read -p "input second number&

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

原文出自:www.hangge.com  转载请保留原文链接:http://www.hangge.com/blog/cache/detail_517.html 1,无返回值的函数 func test(name:String){ } 2,返回一个返回值 func test(name:String) -> Bool{ return true } 3,返回由多个值组成的复合返回值 func test(name:String) -> (Int,Bool){ var position = 1 var v

shell学习笔记之八(函数)

函数 定义: 1.无返回值 #function为关键字,FUNCTION_NAME为函数名 function FUNCTION_NAME(){ command1 command2 ... } 省略关键字function,效果一样 FUNCTION_NAME(){ command .... } 例: 1.简单函数声明和调用 #!/bin/bash function sayHello(){ echo "Hello World!" } sayHello 注意: 1.sayHello调用的时候

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

前言: hive本身提供了丰富的函数集, 有普通函数(求平方sqrt), 聚合函数(求和sum), 以及表生成函数(explode, json_tuple)等等. 但不是所有的业务需求都能涉及和覆盖到, 因此hive提供了自定义函数的接口, 方便用户扩展. 自己好像很久没接触hadoop了, 也很久没博客了, 今天趁这个短期的项目, 对hive中涉及的自定义函数做个笔记. 准备: 编写hive自定义函数前, 需要了解下当前线上hive的版本. hive --vesion 比如作者使用到的hive

MySQL学习笔记-自定义函数

MySQL学习笔记-自定义函数 1.自定义函数简介 自定义函数:用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同 自定义函数的两个必要条件:(1)参数  (2)返回值 自定义函数: 创建自定义函数 CREATE FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL} routine_body 关于函数体: 1.函数体可以由合法的SQL语句构成: 2.函数体可以是

SQL Server -- 自定义函数(学习总结,备忘)

SQL Server自定义函数,以前只在书上看过,没有动手去敲一敲,今天刚好接触到,看了几篇博文学习了下.做好备忘很重要!! (@[email protected])Y Learn from:http://www.cnblogs.com/lideng/archive/2013/04/15/3022418.html 自定义函数分为:标量值函数或表值函数两种. 标量值函数:如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数. 表值函数:如果 RETURNS 子句指定 TABLE,则函

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

http://www.jb51.net/article/33899.htm linux shell自定义函数(定义.返回值.变量作用域)介绍 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带function fun() 定义,也可以