您好,欢迎访问三七文档
SHELL编程葛浩微SDY066内容提要shell变量shell输入与输出shell控制语句shell函数shell脚本调试shell命令专题解析工作中shell共享--特殊符号--&使命令后台运行|管道符\用来屏蔽特殊字符“”去掉大多数字符的特殊属性,但是$和单引号是个例外‘’类似双引号,只是作用更强而已,它所包含的所有字符都会去掉其特殊属性``命令替代符号,所括起来的字符串代表一个unix命令变量名大小写敏感;所有变量值均被认为是字符串;本地变量只在shell当前生命周期有效。赋值操作:variable=value。=号两边不要有空格,如果value要空格则用双引号括之。举例:a=b;a=‘b’;a=“b”;a=`date`;a=${HOME};变量引用:${variable};${variable:-tmpvar};${variable:=resetvar}。shell变量位置变量:$0为脚本名,$1,$2,…..$9命令参数。shift命令每执行一次参数向左偏移一个位置。特殊变量$#传递到脚本的参数个数$*以一个单字符串显示所有传递的参数$$脚本当前的进程ID号$!后台运行的最后一个进程ID号$?显示最后命令的退出状态,0表示无错误。shell变量shell输入与输出echo输出字符串或变量的内容read从键盘或文件中读取内容cat命令可以用于显示或拼接文件通过管道|把一个命令的输出传递给另一个命令做输入。tee命令把命令的输出同时传给标准输出和指定文件。shell输入与输出标准输入、标准输出、标准错误•标准输入——文件描述符0,缺省为键盘•标准输出——文件描述符1,缺省为屏幕•标准错误——文件描述符2,缺省为屏幕输入输出重定向•、、、•echo“content”fileecho“content”file•echo“content”file2&1(ksh)•readnamefile•cat!EOFfile•aaaaaaaaaaaaaaa•!EOFshell控制语句if[条件];then语句elif[条件];then语句else语句fifor变量名in列表do语句done-------------------------breakcontinueshell控制语句until/while[条件]do语句;donecase值in模式)语句;;*)语句;;esacshell控制语句测试文件:-f正规文件,-d目录,-L符号链接,-r可读,-s文件非空,-w可写,-u文件有suid位设置,-x可执行。字符串比较:=等于,!=不等于,-z空串,-n非空串。数值比较:-eq数值相等,-ne数值不等,-gt第一个数大于第二个数,-lt第一个数小于第二个数,-le第一个数小于等于第二个数,-ge第一个个数大于等于第二个数。关系运算符:-a代表与,-o代表或,!代表非。shell函数定义函数的方式函数名()function函数名{{命令或命令}}shell中没有局部变量的概念shell函数函数参数的使用类似于脚本参数函数的引用•在当前脚本中定义的函数可以直接引用•可以将函数放到单独的文件中,在使用前进行加载:.空格全路径名如果函数有返回值,可以使用$?进行测试shell脚本调试典型错误•漏写关键字或关键字写错•漏写引号或空格•忽略大小写的区别•变量引用没有加$符号set命令可辅助脚本调试,常用的调试选项:•set-n读命令但并不执行。•set-v显示读取的所有行。•set-x显示所有命令及其参数。(与set+x配对)使用echo命令打印变量信息shell命令专题解析cut命令:echo“12345678”|cut–c1-3,5-6sort命令:-t指定分隔符(默认为空格)sort–nr+0-1file1(以域1数值逆向排序,忽略域2)uniq唯一命令uniq–cfile1(只处理相邻行,先排序处理)wc命令:wc-lfile1shell命令专题解析awk格式:awk-F’|’[脚本][文件]作用:循环处理文件中的每一行内容,将每一行内容使用分隔符进行字段分隔,使用脚本对各个字段进行处理。结合实例剖析:shell命令专题解析sed格式:sed[选项]-f脚本文件输入文件作用:循环处理文件中的每一行内容,将每一行内容使用脚本进行处理,然后输出到标准输出。结合实例剖析:工作中shell共享生成批量数据data.shftp函数使用doftp.sh调用sqldba.sh批量dbload数据multi-load.sh修改配置文件docfg.sh谢谢!!
本文标题:shell编程
链接地址:https://www.777doc.com/doc-3682395 .html