Shell编程Linux系统环境程序设计之路.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:4 大小:20KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Shell编程Linux系统环境程序设计之路.doc

Shell编程Linux系统环境程序设计之路.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Shell编程:Linux系统环境程序设计之路函数别的高级语言都有函数的感念,当然shell编程也有这个概念,当写一个比较大型的shell程序的时候,如果没有函数,则会到处都是重复的代码。当然也可以调用别的脚本,但是速度会比较慢。所以函数是必不可少并且非常重要的一个东西。定义函数的格式function_name(){...}例子://~fun_sshow(){echo"show$*"}echo$*echo"afterfunction"showcdecho$*exit0/////////////////////////////$./fun_sab结果是abafterfunctioncdab从上面的例子可以看出,当脚本调用函数的时候,脚本程序的位置参数会被替换成函数的位置参数,并且函数调用结束后还原。return://~return_s#!/bin/bashfirst(){echo"isreturn"}second(){echo"beforereturn"return"0"echo"afterreturn"}return_value="$(first)"echo$return_valuesecond&&echo"return0"||echo"returnother"exit0//////////////////////////////////////输出isreturnbeforereturnreturn0该例子说明可以捕获函数内echo的字符串,如echo$(first),函数在return后不会再执行下面的语句。second&&echo"return0"||echo"returnother"该句的输出为return0。这里有人可能会和C语言混淆,因为在C语言里0表示的是false。而这里的0表示函数执行成功,可以理解为true,所以会输出return0。命令break,continue和c语言基本类似echo了解一点即可echo-n输出没有换行。eval:例子://~eval_s#!/bin/bashvar1=abcdvar2=var1evalvar3=\$var2echo$var3exit0///////////////////////////eval相当于一个额外的$,它给出一个变量值的值,如例子里先是$var2使var3变成\$var1,又var1=abcd,所以var3变为abcd,连续解析了两次变量。export:看下面两个例子可以很好的说明export的作用。//~export1_s#!/bin/bashvar1="thisisvar1"var2="thisisvar2"exportvar2./export2_sexit0/////////////////////////////~export2_s#!/bin/bashecho"$var1"echo"$var2"exit0/////////////////////////输出:thisisvar2输出结果说明var1为空而var2却有值,这正是export起的作用,把var2变成了一个环境变量。再看个例子:#!/bin/bashecho$var1echo$var2echo$var3exit0////////////////////////////~set-a_s#!/bin/bashset-avar1="var1"var2="var2"var3="var3"./set-a2_sexit0////////////////////////////~set-a2_s输出:var1var2var3set-a的作用就是把它之后声明的所有变量都exportprintf:和C语言里的printf用法很相似的一个命令,使用非常方便。set://~set_s#!/bin/bashfun1(){echo"abcd"}set$(fun1)echo$1echo$(date)set$(date)echo$1exit0///////////////////////输出:a2008年03月06日星期四03:57:55CST2008年date的输出是几个由空格分隔的值,set的作用能分隔出每个域。shift:就是让$2变$1,$3变$2,依此类推。trap:非常有用的一个命令,用于指定接受到信号后进行的动作,系统定义了非常多的信号类型,用trap-l命令可以查看所有的信号。常见的几个信号有:INT(2)中断,按下ctrl+c组合键引发的