创建函数
来源:互联网 发布:java tomcat 编辑:程序博客网 时间:2024/05/21 10:44
创建函数
function name {
commands
}
name() {
commands
}
函数返回值
1 . 默认的退出状态码
函数运行结束时会返回一个退出状态码(函数中最后一条命令返回的退出状态码)。
$? 用该变量查看函数的退出状态码。
2 . 使用return命令
return命令允许指定一个整数值来定义函数的退出状态码。
注意:退出状态吗必须是0~255,如果return值 > 256,则会产生一个错误值。
3 . 使用函数输出
func abc { read -p "Enter a value: " value echo "the input value is :" echo $value }result=$(abc)echo "the new value is $result"
output:
$: ./test.shEnter a value: 100the input value is :100
在函数中使用变量
1 . 向函数传递参数
#!/bin/bashfunction addem { if [ $# -eq 0 ] || [ $# -gt 2 ] then echo -1 elif [ $# -eq 1 ] then echo $[ $1 + $1 ] else echo $[ $1 + $2 ] fi}echo -n "Add 10 and 15: "value=$(addem 10 15)echo $valueecho -n "Let's try adding just one number: "value=$(addem 10)echo $valueecho -n "Now trying adding no numbers: "value=$(addem)echo $valueecho -n "Finally, try adding three numbers: "value=$(addem 10 15 20)echo $value
由于函数使用特殊参数环境变量作为自己的参数值,因此它无法直接获取脚本在命令行中的参数值。
2 . 在函数中处理变量
一般情况下,如果在脚本的主体部分定义了一个全局变量,那么可以在函数内访问它;如果在函数内定义了一个全局变量,可以在脚本主体部分访问它。
定义局部变量:
local temp
local temp=$[ $value + 5 ]
local关键字保证了变量只局限在该函数中。
数组变量和函数
1 . 向函数传递数组参数
#!/bin/bashfunction testit { local new_array new_array=`echo $@` echo "the new array value is ${new_array[*]}";}myarray=(1 2 3 4 5 6)echo "the original array is ${myarray[*]}"testit ${myarray[*]}function addarray { local sum=0 local newarray newarray=$(echo "$@") for value in ${newarray[*]} do sum=$[ $sum + $value ] done echo $sum}myarray=(1 2 3 4 5)echo "the original array is: ${myarray[*]}"arg1=$(echo ${myarray[*]})result=$(addarray $arg1)echo "the result is $result"
output:
the original array is 1 2 3 4 5 6the new array value is : 1 2 3 4 5 6the original array is: 1 2 3 4 5the result is 15
2 . 从函数返回数组
从函数里向shell脚本传回数组变量的方法: 函数用echo语句来按正确顺序输出单个数组值,然后脚本再将他们重新放进一个新的数组变量中。
创建库
shell中怎么使用库文件?
a). 首先创建一个库文件
b). 在脚本文件中引用库文件,使用库文件中的函数
关键在于:怎么引用库文件?
使用函数库的关键在于 source命令
:该命令会在当前shell上下文中执行命令,而不是创建一个新shell。
使用 source命令
来在shell脚本中运行库文件脚本,这样就可以使用库中的函数了。
. ./funcLib #source命令的别名:点操作符. /home/rich/libraries/myfuncs
如何直接在命令行上直接运行函数
方法一:直接在命令行上创建函数, 然后在命令行上调用该函数即可。
缺点:退出shell时,函数就消失了。
方法二: 在 .bashrc文件中定义函数
将函数直接定义在这个文件中,这个文件在每次启动一个新的shell的时候,都会由shell重新载入。
- 创建函数
- 函数+创建函数
- js函数创建 匿名函数
- Asp创建文件夹函数
- sql 创建时间函数
- Random函数创建随机数
- 同义词创建函数
- 同义词创建函数
- oracle创建函数索引
- mysql 创建函数(function)
- 创建多层目录函数
- 创建wm_concat函数
- MySql创建函数
- MySql创建函数
- sql 创建函数
- PHP创建XML函数
- MySql创建函数
- 创建触发器及函数
- ftp 下载
- ubuntu 16.06LTS 环境安装eclipse 太卡的问题
- u-boot FIT image
- xListview
- eclipse中的工作集working set(项目分类)
- 创建函数
- 运行时数据区域--深入理解Java虚拟机
- 【BZOJ2287】【POJ Challenge】消失之物(DP,背包)
- Django学习笔记(八)--xadmin的安装与应用
- android studio 2.3.3 编译出错Error:Failed to complete Gradle execution
- ImageLoader修改后的代码
- LeetCode--Search in Rotated Sorted Array II
- Delphi通过管道执行外部命令行程序(cmd)并获取返回结果
- 【c++】sockaddr,sockaddr_in