- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux下的shell项目知识累积.
如何进行shell脚本开发
什么是shell
简单的理解为系统管理员与操作系统之间的接口;顾明思义它是操作系统的外壳,管理员通过这个接口完成所需要的任务.
shell脚本与shell命令的区别及关系
shell脚本是一个包含shell命令的ASCII码文件,特点是可以用文本处理工具查看如more 脚本名 来讯速的判断它是不是脚本.如果是命令的话则显示乱码
而命令则是可执行的二进制代码文件
Shell脚本可理解为shell命令与应用程序的集合
shell脚本用起来有时候跟shell命令一样.
unix的文件观
在unix中设备是文件,目录是文件,文件是文件:
空设备文件
/dev/null
开发脚本时需要把不必要的信息输出到这个文件,让屏幕干净.
cat /dev/null filename #清空filename
statement /dev/null #把不需要的输出重定向到空
如何创建一个可执行的脚本
1 用touch命令建一个空文件(touch shellscrip),更改其权限为可执行chmod +x shellscrip
2 如何让操作系统懂得它是一个脚本
echo #!\/bin\/sh shellscrip
echo echo hello world shellscrip
3 执行shellscrip 完成一个hello world脚本
hello world 相关的几个命令
touch 是创建文件的命令
chmod 是改变文件的权限(文件的权限位分为读写执行分别用三个字母标识共有三组用户属性第一组文件属主,第二组为同组用户,第三组为其它,注意:同组不包含属主
echo 表示显示信息
输出重定向
追加
\ 转义字符
shellscripr 的内容
#!/bin/bsh
操作系统看到 #! 就会用紧跟在它后面的程序去解释这个的文本(它可能是脚本,可能是一个awk程序或是其它别的应用程序),这里用bsh ,则说明它是bsh的脚本,不同的shell也在这里指出,重要的是这里必需给出绝对路径(即全路径或完整路径),哪怕PATH变量有指出也要给绝对路径.
仅第一次出现是这个含义,往后再现”#!”字符串shell解释为注释行(注释行以#号开始)并不会改变当前的shell.:
#!/bin/sh #!/bin/csh
echo $status echo $status
#!/bin/csh #!/bin/sh
echo $status echo $status
以上两组动作将有不同的结果表明第二次出现的 #! 指定的shell并不会改变当的shell
常见的Shell
bsh (Bourne Shell)
ksh (Korn Shell)
csh ( C Shell)
最常用的Shell是sh,大部分的Unix系统都将sh连接到bsh;IBM将sh连接到ksh
Shell程序也就是一系列的Unix命令的组合,相当于DOS系统下的批处理命令。Unix命令既可以是内部命令,也可以是已经编译好的高级语言程序,甚至可以是其它Shell程序
Shell程序支持分支与循环结构,可以进行信号处理
Shell程序可以加注释,注释以“#”号开头,到行尾结束
怎样才能知道用什么Shell来执行我编写的Shell脚本?参照下面三个原则:
如果脚本文件的第一个字符不是“#”号,则启动bsh执行此脚本
如果脚本文件的第一个字符是“#”号,但第二个字符不是“!”,则启动csh执行此脚本
如果脚本文件的前两个字符为“#!”,则后面必须是Shell的全路径,启动指定的Shell执行此脚本,如:
#!/usr/bin/ksh
求条件表达试的值 test 或 [ ]
不支持控制符的判断.规避方法 [ X$str = Xstring ]
如果是含路径的字符串用basename,与dirname命令取得文件名与父目录名,因为对含路径的字符串进行处理时test命令是会报错的
test 表达式 或 [ 表达式 ]
name=Tom #bsh(这种赋值方式不适合csh,tcsh)
test $name = Tom #等号两边必需留空格字符串比较
echo $? #查看测试结果
[ $name = Tom ] #方括号两边内侧须留空格
字符串,整型和文件的测试
字符串测试
string1 = string2 #字符串1等于字符串2 (等号两边的空格是必需的)
string1 != string2 #字符串1不等于字符串2 (不等号两边的空格是必需的)
string #不是
您可能关注的文档
- LH20T起重机械产品质量证明书001..doc
- LH20T起重机械产品质量证明书002..doc
- LH20T起重机械产品质量证明书004..doc
- LH20T起重机械产品质量证明书003..doc
- lhbod601型bod测定仪..doc
- lhjxxxx-给学生案例1..doc
- LI-COROdyssey红外荧光成像..doc
- lietome美剧,教你看穿谎言..doc
- Libor操纵丑闻浮出水面..doc
- Liferay6开发环境部署Liferay6实例..docx
- 中考语文总复习语文知识及应用专题5仿写修辞含句子理解市赛课公开课一等奖省课获奖课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第二课《藏猫猫》精品课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第三课《我向国旗敬个礼》精品课件.pptx
- 高中生物第四章生物的变异本章知识体系构建全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 整数指数幂市公开课一等奖省赛课微课金奖课件.pptx
- 一年级音乐上册第二单元你早全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级数学上册第二章实数27二次根式第四课时习题省公开课一等奖新课获奖课件.pptx
- 九年级物理全册11简单电路习题全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级语文下册第五单元19邹忌讽齐王纳谏省公开课一等奖新课获奖课件.pptx
- 2024年秋季新人教PEP版3年级上册英语全册教学课件 (2).pptx
文档评论(0)