- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
新增资源及索引表项目拓展资源linux脚本编程浅介
?
linux脚本编程(shell)浅介
??linux脚本(shell)编程
?啊,昨天上网看到一篇讲 linux/unix shell 的文章,想想自己最后写这东西也是一年前的事了,想想都快忘光了。
?还是整理一下,做一次回顾,以后说不定还用得上;帖出来,方便第一次学习这东西的同道中人。
?如果发现有错误的地方,请指出,留一句即可,我会感激的。废话少说了!!!
?linux 下最重要的脚本语言算是 bash 了,我也就写点这个吧(我也只会这个:))。跟其他开发语言(如C)比,bash 是比较简单的一种语言,主要用于写一些脚本代码,一些批处理或安装程序。你可以看看在/etc/init.d/目录下,那里就有很多用来控制各个服务的脚本文件。
?先看一个“hello world!”的例子:?在某个目录下新建一个文件,叫hello.sh,敲入以下代码:
#!/bin/shecho hello world!
?好,就这些。保存,在命令提示符下进入保存“hello.sh”的目录,这样执行:?#sh hello.sh(回车)?看到了吧?哈哈,不过你高兴的不要太早了,只并不能说明什么,就象你在其他编程环境中做的“hello world.”一样,离高手的距离还远着呢。
?我们先看看bash脚本中变量的使用。?修改上面的“hello world!”的例子,改成下面的样子:
#!/bin/bash# This is a very simple examplestr=hello world!echo $str
?保存后按照上面的方法执行该脚本,你将看到和以前一样的效果。我们看看每一句的意义:?第一行,#! 是说明 hello.sh 这个文件的类型的,有点类似 Windows 系统下用文件后缀来表示不同文件类型的意思。Linux 系统根据 #! 及该字串后面的信息确定该文件的类型。在 BASH 中 第一行的 #! 及后面的 /bin/bash 就表明该文件是一个 BASH 程序,需要由 /bin 目录下的 bash 程序来解释执行。BASH 这个程序一般是存放在 /bin 目录下。这一行的写法是固定的。?第二行的 # This is a ... 就是 BASH 程序的注释,在 BASH 程序中从“#”号(没有“!”号)开始到行尾的部分均被看作是程序的注释,相当于C/C++语言中的“//”。?第三行是为一个名称为 str 的变量赋值。?第四行的 echo 语句的功能是把 echo 后面的字符串或变量的内容输出到标准输出中去。需要注意的是 BASH 中的绝大多数语句结尾处都没有分号。
?对于第三行,可能有人会问:在C/C++中,变量都属于某个类型,在这变量 str 的类型是什么呢?在 BASH 中变量定义是不需要的,没有 int i 这样的定义过程。如果想用一个变量,只要他没有在前面被定义过,就直接可以用,当然你使用该变量的第一条语句应该是对他赋初值了,如果你不赋初值也没关系,只不过该变量是空( 注意:是 NULL,不是 0 )。
?关于变量的使用,要注意以下几点:?一,变量赋值时,“=”左右两边都不能有空格;?二,BASH 中的语句结尾不需要分号(;);?三,除了在变量赋值和在FOR循环语句头中,BASH 中的变量使用必须在变量前加$符号。
?在比较详细的 bash 文档中,会规定使用变量要采用这样的形式:${STR},如果你的脚本出了莫名其妙的错误,不妨看看是不是这个问题造成的。
?BASH 中的变量既然不需要定义,也就没有类型一说,那是不是一个变量既可以存放整数,也可以存放字符串呢?对!?一个变量即可以被定义为一个字符串,也可以被再定义为整数。如果对该变量进行整数运算,他就被解释为整数;如果对他进行字符串操作,他就被看作为一个字符串。请看下面的例子:
#!/bin/bashx=2006let x = $x + 1echo $xx=a string.echo $x
?执行一下看看?
?又出现了新的关键字:let。关于整数变量计算,有如下几种: + - * / % ,他们的意思和字面意思相同,在*和/之前必须冠以反斜线,已防被SHELL先行解释。整数运算一般通过 let 和 expr 这两个指令来实现,如对变量 x 加 1 可以写作:let x = $x + 1 或者 x=`expr $x + 1`
?关于运行时参数,我们在执行脚本时有时很想传个参数进去,如:#sh mysh.sh hdz(回车)好,很简单,在 bash 中,使用这样传进来的变量时也要在前面加“$”符号。
$# 传入脚本的命令行参数个数;
$* 所有命令行参数值,在各个参数值之间留有空格;
位置变元
$0 命令本身(shell文件名)
$1
您可能关注的文档
- 新会计则下企业费用税前扣除问题.doc
- 新人教版九年级物理大压强课件.ppt
- 新债务重组准则的主要变化其对企业的影响.doc
- 新公共管理理论视野下的高校后勤社会化研———以福州地区为例.doc
- 新农村信息平台建设土地资源管理子系统文献翻译英文 Architecture of a Seach Engine.doc
- 新农村建设的金融制度创新研究 .doc
- 新农村设中的金融制度创新研究 相关表格.doc
- 新北区教育学“十二五”规划课题结题报告.doc
- 新农村宅的建设.doc
- 新一代数控机床结构的演变及新发展初探.doc
- (广东专用)高考物理一轮复习方案 第8讲 牛顿第二定律 两类动力学问题(含解析).doc
- (广东专用)高中英语 Unit 8 Adventure Period Three Grammar课时精练 北师大版必修3.doc
- (广东专用)高考物理二轮复习 第4讲 能量观点和动量观点在力学中的应用专题提升训练.doc
- (广东专用)高考化学三轮专题复习 保温训练3.doc
- (广东专用)高考英语 大二轮总复习测试 完形填空专题 专题四 语法填空.doc
- (广东专用)高考物理一轮复习方案 专题3 牛顿运动定律的应用(2)(含解析).doc
- (广东专用)高考物理二轮复习简易通 第一部分 高频考点突破专题一 第3讲 牛顿运动定律与曲线运动活页规范训练.doc
- (广东专用)高考英语 大二轮总复习测试 阅读理解专题 专题三 “字斟句酌” “驾驭”推理判断类题目.doc
- (广东专用)高考物理一轮复习方案 45分钟单元能力训练卷(六).doc
- (广东专用)高考化学二轮专题题组训练 上篇 专题三 第12讲考点3 常见元素及其化合物.doc
文档评论(0)