1、函数,第七章,1,本章目标,函数的使用 字符串操作 一些内置命令(expr,shift,eval,trap等),2,function_name() commands ,函数,一个函数就是一个子程序,用于完成特定的任务,当有重复代码,或者一个任务只需要很少的修改就被重复几次执行时, 这时你应考虑使用函数。,function function_name commands ,函数的一般格式,和其它编程语言一样, Bash 也可以定义函数。,3,只需输入函数名即可调用该函数。,函数举例,函数必须在调用之前定义,#!/bin/bashfun() echo “This is fun2.“echo “Now
2、 exiting fun2.“ fun2 # 调用函数 fun2,4,函数参数传递,#! /bin/bash func1() echo “the parameters count:$#“echo “the first parameter:$1“echo “the second parameter:$2“ func1 a b,5,字符串操作,6,注:pattern,old 中可以使用通配符。,m 的取值从 0 到 $#var-1,生成随机数的特殊变量,echo $RANDOM,expr:通用的表达式计算命令,表达式中参数与操作符必须以空格分开,表达式中的运算可以是算术运算,比较运算,字符串运算和
3、逻辑运算。,expr 5 % 3,expr 5 * 3 # 乘法符号必须被转义,随机数和 expr 命令,注意:目前比较少使用,可用$ . 替换,7,shift命令,一般用于函数或者脚本程序参数处理,特别是参数多于10以上的时候 将所有参数变量向下移动一个位置,$2变成$1,$3变成$2,依次递进,但$0保持不变,例如: while “$1“ != “ doecho $1shift done,8,listpage=“ls -l | more“ $listpage,listpage=“ls -l | more“ eval $listpage,eval命令,eval arg1 arg2 . arg
4、N,将所有的参数连接成一个表达式,并计算或执行该表达式,参数中的任何变量都将被展开。,9,trap命令,trap command signal,command 一般情况下是Linux命令 表示发生陷阱时为空指令,不做任何动作 -表示发生陷阱时采用缺省指令 signalHUP(1) 挂起;一般因终端掉线或用户退出而引发INT(2) 中断;一般因按下”Ctrl+C”组合键引发QUIT(3) 退出;一般因按下”Ctrl+”组合键引发ABRT(6) 异常中止;一般因某些严重的执行错误而引发ALRM(14) 闹钟;一般是超时时钟到来而引发TREM(15) 中止;一般由系统在关机的时候发出,10,陷阱命令举例,11,#!/bin/bash #安装2、3号信号 #处理代码为“rm -f tmp$;exit 0“ trap “rm -f tmp$;exit 0“ 2 3 #生成文件,文件名为tmp+当前进程号 touch tmp$ #睡眠60秒,以便向当前进程发送信号 sleep 60,Shell内置命令总结,12,总结,函数的使用 字符串操作 一些内置命令(expr,shift,eval,trap等),13,