Shell脚本学习教程.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 Shell入门 407234756 1.1 简单的shell例子 shell脚本类似于windows下的批处理文件(bat),下面是一个简单的shell脚本: #!/bin/sh #======================================== # FUNCTION: display “hello,world!” # PARAM: none # USAGE: display #======================================== echo hello,world! SHELL脚本主要由三部分构成,其中: #!/bin/sh 指明脚本运行的环境,可以是sh、csh、bash等,一般默认是sh。 第二部分为说明部分,对脚本功能、参数的描述。 第三部分为命令部分,可以是多个命令的组合。 1.2 脚本的运行 脚本编辑完后,可采用多种方式进行运行。 设置运行权限运行 chmod u+x display ./display 借助sh运行 sh display 2 shell变量 Shell脚本存在四类变量:局部变量、全局变量、位置参数变量以及特定变量。 注:变量的数据类型不需要指明。 2.1局部变量 Shell脚本类似于函数(模块),也有生命周期,局部变量(本地变量)只在shell脚本的生命周期内有效。 局部变量的定义语法: variable-name=value 变量使用需注意下面几点: 变量名最好使用全部大写; 等号前后不能有空格; 字符串变量赋值时最好将字符串用双引号括起来。如:FILENAME=”file.txt” 变量名命名不能与保留字,全局变量名重名,避免shell脚本误解。 变量定义时一定要给赋值,不然shell可能会当做函数调用,引起误解。 2.2 全局变量 全局变量是运行shell脚本的用户设置的环境变量。环境变量的值对该用户下的所有shell进程有效。环境变量的设置一般保存在登录用户的.profile文件中。 2.3 位置变量 位置变量类似于函数的输入参数。属于只读变量,位置参数从0开始编号,访问时需在位置编号前加$符号,如访问第3个参数,则使用$3。 2.4 特定变量 特定变量指shell脚本中的输入参数个数、脚本运行过程中的状态以及脚本运行的进程号信息等。 特定变量 变量含义 $# 传递给shell脚本的参数个数 $* 传递给shell脚本的所有参数串接成一字符串 $$ 脚本运行的当前进程号 $? 脚本命令运行返回值,0表示运行正常 $! 后台运行的最后一个进程的进程号 3 变量的运算 变量分两类:数值与字符串。注:Shell脚本仅支持整型,其它数值型不支持。 3.1 整型运算 3.1.1 四则运算 对整型变量赋值时,不能直接使用表达式,使用表达式赋值,shell脚本会当将该变量当做字符串对待。 整型数值支持加、减、乘、除、取模运算,分别对应+、-、*、/、%符号。由于*属于通配符,在进行乘法运算时需要使用”\”进行转义。 对整型数值在进行运算时,不能像高级语言直接对变量进行算术运算,需要使用下面语句: i=4 i=` expr $i \* 5 ` 3.1.2 比较运算(整型比较) 比较运算符 对应高级语言中的运算符 -eq == -ne != 或 -gt -lt -le = -ge = 如: NUMBER=120 [ $NUMBER -eq 130 ] echo $? 3.2 字符串运算 3.2.1字符串直接相加 例如: FILENAME1=dat” FILEDIR=”/data/cdr/” FILENAME=$FILEDIR$FILESUFFIX 3.2.2 shell命令与函数 `命令 例如: FILESUFFIX=”.dat” FILEDATE=`date +’%Y-%m-%d` FILEDIR=”/data/cdr/” FILENAME=$FILEDIR$FILEDATE$FILESUFFIX cut函数 从文件名中获取时间字符串,例如: FILLNAME=’/data/cdrdat’ FILEDATE=`echo $FILENAME |cut -c 11-18` 获取指定位置的字符串: FILEDATE=`echo $FILENAME |cut

文档评论(0)

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

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

1亿VIP精品文档

相关文档