Shell编程:Linux系统环境程序设计之路
发布:smiling 来源: PHP粉丝网 添加日期:2014-03-05 22:00:45 浏览: 评论:0
别的高级语言都有函数的感念,当然shell编程也有这个概念,当写一个比较大型的shell程序的时候,如果没有函数,则会到处都是重复的代码。当然也可以调用别的脚本,但是速度会比较慢。所以函数是必不可少并且非常重要的一个东西。
Shell的函数
定义函数的格式function_name(){...}例子://~ fun_sshow(){echo "show $*"}echo $*echo "after function"show c decho $*exit 0/////////////////////////////$./fun_s a b结果是a bafter functionc da b
从上面的例子可以看出,当脚本调用函数的时候,脚本程序的位置参数会被替换成函数的位置参数,并且函数调用结束后还原。
return://~ return_s#!/bin/bashfirst(){echo "is return"}second(){echo "before return"return "0"echo "after return"}return_value="$(first)"echo $return_valuesecond&&echo "return 0"||echo "return other"exit 0//////////////////////////////////////输出 is returnbefore returnreturn 0
该例子说明可以捕获函数内echo的字符串,如echo $(first) , 函数在return后不会再执行下面的语句。
second&&echo "return 0"||echo "return other" 该句的输出为 return 0。这里有人可能会和C语言混淆,因为在C语言里0表示的是false。而这里的0表示函数执行成功,可以理解为true,所以会输出return 0。
命令
break,continue 和c语言基本类似
echo 了解一点即可echo -n 输出没有换行。
eval: 例子://~ eval_s #!/bin/bashvar1=abcdvar2=var1eval var3=$$var2echo $var3exit 0///////////////////////////
eval相当于一个额外的$,它给出一个变量值的值,如例子里先是$var2使var3变成$var1,又var1=abcd,所以var3变为abcd,连续解析了两次变量。
export:
看下面两个例子可以很好的说明export的作用。
//~ export1_s#!/bin/bashvar1="this is var1"var2="this is var2"export var2./export2_sexit 0/////////////////////////////~ export2_s#!/bin/bashecho "$var1"echo "$var2"exit 0/////////////////////////输出:this is var2
输出结果说明var1为空而var2却有值,这正是export起的作用,把var2变成了一个环境变量。
再看个例子:
#!/bin/bashecho $var1echo $var2echo $var3exit 0////////////////////////////~ set-a_s#!/bin/bashset -avar1="var1"var2="var2"var3="var3"./set-a2_sexit 0////////////////////////////~ set-a2_s输出:var1var2var3
set -a的作用就是把它之后声明的所有变量都export
printf:
和C语言里的printf用法很相似的一个命令,使用非常方便。
set://~ set_s#!/bin/bashfun1(){echo "a b c d"}set $(fun1)echo $1echo $(date)set $(date)echo $1exit 0///////////////////////
输出: a 2008年 03月 06日 星期四 03:57:55 CST 2008年
date的输出是几个由空格分隔的值,set的作用能分隔出每个域。
shift:
就是让$2变$1,$3变$2,依此类推。
trap:
非常有用的一个命令,用于指定接受到信号后进行的动作,系统定义了非常多的信号类型,用trap -l命令可以查看所有的信号。
常见的几个信号有:
INT(2) 中断,按下ctrl+c组合键引发的
QUIT(3) 退出,按下ctrl+引发
例子:
//~ trap_s#!/bin/bashtrap var=2 INTecho "please enter ctrl+c"var=1while [ $var = 1 ]doecho "in while"sleep 1doneexit 0/////////////////////////
这个例子在我按下ctrl+c后改变了var的值,所以跳出循环,程序结束。
Tags: Shell编程 Linux系统 程序设计
相关文章
- ·利用shell编程实现DOS风格的Linux命令行(2014-03-07)
- ·Linux shell编程学习之一:什么是shell(2014-03-07)
- ·Linux的Shell编程 运行Shell程序的方法(2014-03-07)
- ·Linux的Shell编程bash的内部命令(2014-03-07)
- ·Linux的Shell编程 Shell基本语法(2014-03-07)
- ·Linux的Shell编程 Shell程序设计的流程控制(2014-03-07)
- ·教你使用Linux系统的Shell脚本维护Oracle(2014-02-28)
- ·基于2.6.19内核小型Linux系统制作与移植(2014-02-28)
- ·Fedora 8 Linux系统的内核配置注意事项(2014-03-05)
- ·虚拟机Linux系统下连接ARM开发板的方法(2014-03-05)
- ·Linux系统下查看文件调用情况Shell命令(2014-03-05)
- ·Linux系统下的C语言开发都需要学些什么(2014-03-06)
- ·Linux系统共享库编程(2014-03-06)
- ·Linux系统平台上安装和配置Ruby on Rails(2014-03-06)
- ·Linux系统下C语言编程:线程的创建和使用(2014-03-06)
- ·如何从DOS系统引导Linux系统(2014-03-07)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)