首页 > 代码库 > shell学习总结之自定义函数
shell学习总结之自定义函数
shell学习总结之自定义函数
Myfun (){ echo patams1 is $1 echo -n "now i is $i " ! [ "$i" ] && exit ; echo jj return ‘1‘}myf=$(Myfun);echo myf Myfun 12unset MyfunMyfunecho ‘the end !‘$myf
别人的
#! bin/bash# -------------------------------------------------------------------------------# 文件名: Shell自定义函数总结.sh# 版 本: 1.0# 创建日期: 2014/02/12# 描 述: shell中可以用户定义函数,然后在脚本中可以随便调用,下面是我总结的自定义函数的一些特性# 作 者: 毕小朋# 邮 箱: wirelessqa.me@gmail.com# 博 客: 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=\"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 2 253echo -e "参数返回值为:$? \n"echo "2. 测试>255的参数返回值"get_return_int 10 253echo -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 255echo -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_varecho "main函数现次调用全局变量: echo \$global_var"echo $global_varecho "================ 局部变量 ================ "get_local_varecho "main函数现次调用局部变量: echo \$local_var"echo $local_var
结果:
bixiaopeng@bixiaopengtekiMacBook-Pro Shell备忘录$ bash Shell自定义函数总结.sh自定义函数需知:一.因为shell脚本是逐行运行。不会像其它语言一样先预编译,所以必须在调用函数地方之前,声明函数二.各个输入参数直接用空格分隔,命令里面获得参数方法可以通过:…,Shell自定义函数总结.sh为脚本名三.函数返回值,只能通过0 系统变量获得四.局部变量要特别声明================ 测试加return的参数返回值 ================注意:1.返回值只能是int,范围在0-255,调用方法和取得返回值之间,不能有任何操作,不然取不到return的值1. 测试0-255之间的参数返回值return 255参数返回值为:2552. 测试>255的参数返回值return 263参数返回值为:73. 测试<0的参数返回值return -3参数返回值为:2534. 测试参数返回值为字符,会报错return "my name is bixiaopeng"Shell自定义函数总结.sh: line 6: return: my: numeric argument required参数返回值为:255================ 测试不加return的参数返回值 ================注意:不加return将以最后一条命令运行结果作为返回值,正确为0,错误为11. 最后一条命令执行正确,返回值为0echo 510参数返回值为:02. 最后一条命令执行不正确,返回值为1Shell自定义函数总结.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_varname: bixiaopeng================ 局部变量 ================函数内声明局部变量:local local_var="weibo@wirelessqa"main函数现次调用局部变量: echo $local_var
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。