网站大量收购独家精品文档,联系QQ:2885784924

linux下的shell项目知识累积..doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 #不是

文档评论(0)

xznh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档