Unix Shell 编程基础培训(基础篇).pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:147 大小:1.6MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Unix Shell 编程基础培训(基础篇).pdf

UnixShell编程基础培训(基础篇).pdf

预览

免费试读已结束,剩余 137 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

UnixShell编程基础篇北京神州数码思特奇信息技术股份有限公司研究院www.si-tech.com.cn课程目标•熟练编写UnixShell程序内容提纲1.Shell介绍2.Shell脚本介绍3.Shell特性4.正则表达式5.变量与运算符6.Shell的输入与输出7.Shell函数8.脚本调试9.高级编程技巧10.Shell工具SHELL介绍Shell-UNIX命令解释器问题引入:DOS系统的命令由command负责执行,并且对重覆性或多个命令运行可写成批处理文件,只要执行这个批处理文件就等於执行这些命令。UNIX系统如何处理?Shell:shell是一种命令语言,同时又是一种程序设计语言。UNIX系统利用shell命令解释器(command-languageinterpreter),完成用户输入命令的执行,是用户与系统交互的界面,是命令与kernel之间的接口。shell接收用户输入的命令,对命令作出解释,然后发送给kernel执行之。shell是一个解释型的程序设计语言。shell程序(脚本)相当于dos的批处理文件,可简单到只有一条命令,也可以包括循环、条件语句、数学运算、控制结构的程序,完成复杂的管理任务。Shell-UNIX命令解释器SHELL脚本介绍Shell脚本介绍•为什么使用Shell脚本?–批量命令–重复、条件等控制•Shell脚本的基本内容#!/bin/sh第一行注释:#第二行变量第三行条件判断、循环第四行•脚本的运行方式–chmod?+x脚本–./脚本文件名Shell脚本介绍•示例:hello.sh#!/bin/bash#这是一个基本的shell脚本op="helloworld"echo$opSHELL特性Shell特性•别名•命令替换•管道•重定向•后台处理•模式匹配•变量•特殊字符别名•aliasEg:aliasll=`ls-alh`命令替换•myfile的内容如下:–marm–findfile实现替换如下:ls`catmyfile`-al命令替换示例:$MYDIR=`dirname/usr/local/share/doc/foo/foo.txt`$echo$MYDIR/usr/local/share/doc/foo上面所做的称为“命令替换”。此例中有几点需要指出。在第一行,简单地将要执行的命令以反引号括起。那不是标准的单引号,而是键盘中通常位于Tab键之上的单引号。可以用bash备用命令替换语法来做同样的事:$MYDIR=$(dirname/usr/local/share/doc/foo/foo.txt)$echo$MYDIR/usr/local/share/doc/foo如您所见,bash提供多种方法来执行完全一样的操作。使用命令替换可以将任何命令或命令管道放在``或$()之间,并将其分配给环境变量。真方便!下面是一个例子,演示如何在命令替换中使用管道:MYFILES=$(ls/etc|greppa)bash-2.03$echo$MYFILESpam.dpasswd后台处理•什么是后台?•一个终端可以同时运行多个程序•用法:–nohupcommand&可以再后台运行此命令示例:nohubtar-czf要压缩的文件名压缩后的文件名&查看后台命令使用:jobs–l变量•示例:#!/bin/bash#这是一个基本的shell脚本printchar=“helloworld”echo$printchar•变量用来存储信息管道(|)•把一个命令的输出连接到另一个命令的输入。•示例:–ls|sort–catfunc.txt|grep-v^#重定向(<>)•与管道相关,可以改变程序运行的输入来源和输出地点•示例:–sort<myfile.txt对文件中内容进行排序–sort<myfile.txt>myfile_test.txt模式匹配•显示以txt为扩展名的文件或显示以a开头的文件,这种情况称为模式匹配。•实现方式:正则表达式如:ls*.txt特殊字符•分号(;):允许在一行上放多个命令。–eg:cd~/backup;mkdirstartup;cp~/.*startup/.•&:命令后执行。•括号():创建成组的命令。•竖杆(|):管道标示符。•<>&:表示重定向。•*?[]!:表示模式匹配。•$:变量名的开头。•