我的新浪微博:http://weibo.com/u/1602714773
CSDN博客:http://blog.csdn.net/hunterno4
Linux Shell笔记之函数
上一篇 /
下一篇 2013-11-22 10:48:17
/ 个人分类:Linux
1.创建函数#!/bin/bashfunction func1 { function关键字创建函数 echo "this is func1"}func2() { 接近其它语言形式的函数echo "this is func2"}func1 引用函数func22.函数返回值1)退出状态码[root@localhost function]# vi creatfun #!/bin/bashfunction func1 { echo "this is func1"}func2() {echo "this is func2"ls badfie}func1echo "func1's exit status is : $?" 使用$?变量存放退出状态码,由函数中的最后一条语句决定,因此使用此方法很危险func2echo "func2's exit status is : $?"2)return命令#!/bin/bashfunc3() {read -p "enter a number: " valuereturn $[ $value + 1 ]}func3echo "func3's exit status is $?"# ./func3 enter a number: 8func3's exit status is 9 退出状态码需在0~255之间3)使用函数输出#!/bin/bashfunc3() {read -p "enter a number: " valueecho $[ $value + 1 ] echo显示值}result=`func3` 将函数输出赋值给新变量echo "new value is $result"3.函数中使用变量1)向函数中传递参数#!/bin/bashfunc4() { echo $[ $1 + $2 ] shell将函数当做小型脚本对待,向函数中传参,与普通脚本一样}if [ $# -eq 2 ]then value=`func4 $1 $2` 函数不能直接从脚本命令行中获取参数值,需要先在脚本中获取,再手动向函数中传值 echo "new value is $value"else echo "usage: func4 a b"fi# ./func4 3 4new value is 72)函数中处理变量[root@localhost function]# vi func5#!/bin/bashfunc5() { local temp=$[ $value +3 ] local关键字,定义局部变量 result=$[ $temp * 2 ]}temp=4value=6 默认情况下,脚本中定义的任何变量均为全局变量,可以函数内访问func5echo "new temp value is $temp"echo "result value is $result"3)向函数中传递数组变量#!/bin/bashaddarray() { 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 old array is : ${myarray[*]}"result=`addarray ${myarray[*]}` 将数组变量的值分解成单个值然后将这些值作为函数参数使用echo "final result is $result"4)递归#!/bin/bashfactorical() {if [ $1 -eq 1 ]then echo 1else local temp=$[ $1 - 1 ] local result=`factorical $temp` echo $[ $result * $1 ]fi}read -p "enter a number: " valueresult=`factorical $value`echo "the factorical of $value is $result"4.创建函数库1)使用函数库# cat myfuncs#!/bin/bashaddem() { echo $[ $1 + $2 ]}multem() { echo $[ $1 * $2 ]}divem() { if [ $2 -ne 0 ] then echo $[ $1 / $2 ] else echo -1 fi}#!/bin/bash. ./myfuncs 使用函数的关键字为source命令,快捷别名为.号,在当前shell上下文中执行命令num1=4num2=2add=`addem $num1 $num2`mul=`multem $num1 $num2`div=`divem $num1 $num2`echo "add result is $add"echo "mult result is $mul"echo "div result is $div"2)在.bashrc文件中定义函数$ vi .bashrc # .bashrc# Source global definitionsif [ -f /etc/bashrc ]; then . /etc/bashrcfi# User specific aliases and functionsalias ll='ls -al'. /home/hunterno4/function/myfuncs$ addem 3 4 如此再次启动shell时,就可以像使用命令一样使用函数了7
收藏
举报
TAG:
Linux
linux
shell
Shell
变量
函数
函数库