HP-UX_shell编程.ppt_第1页
HP-UX_shell编程.ppt_第2页
HP-UX_shell编程.ppt_第3页
HP-UX_shell编程.ppt_第4页
HP-UX_shell编程.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 4 课 shell编程,第4课 shell编程,1、shell简介 2、Shell变量 3、变量测试语句 4、捕捉信号 5、流控制语句 6、函数,1、Shell简介,Shell是用户使用UNIX的界面,它负责 接收用户输入的命令,对其进行解释, 并将其提交给UNIX内核进行执行,然后 将执行结果返回给用户,1、Shell简介,Shell在UNIX系统中所处的位置,硬件,内核,Shell,用户进程,1、Shell简介,Shell的类型 Bourne shellBell 实验室的Bourne 为UNIX 开发的shell 程序, 是其他shell的开发基础, 也是一种最常用、最基本的shell

2、。 C shell 是加州伯克利大学的Bill 为BSD UNIX 开发的, 与 C 语言风格类似。 Korn shell是 Bell 实验室的 Korn开发的是对 B shell 的继承与发展。,1、Shell简介,1、Shell简介,初始化文件:当用户登录系统时,Shell将查找并执行两个初始化文件:系统初始化文件和用户初始化文件 系统初始化文件为所有登录用户提供一个操作环境,这个文件由系统管理员来维护 用户初始化文件为每个用户提供自己的工作环境,例如搜索路径、环境变量以及X Window环境。这个文件由系统管理员或用户自己来维护,1、Shell简介,系统初始化文件由系统自动创建,放置在目

3、录/etc中,文件名为profile 用户初始化文件单独存放在每个用户的主目录中,文件名为. profile,1、Shell简介,1、Shell简介,Shell编程:将UNIX命令通过变量、条件 控制语句结合起来,形成灵活的、功能 强大的程序-Shell脚本, Shell脚本用于 完成复杂的、重复的任务,2、Shell变量,Shell变量有用户自定义变量、系统变量、只读变量、特殊变量 自定义变量,如A, str1 只读变量:readonly 变量=值,2、Shell变量,系统变量 又称环境变量,可直接引用 HOME 用户主目录 PATH 搜索路径 PS1 shell提示符 PWD 用户当前所处

4、的目录,2、Shell变量,变量赋值: 定义时赋值,如str1=abcdefg 将一个命令的执行结果赋给变量,如: A=date B=$(ls -l) 输出变量值:echo $变量 变量导出:export 变量 用户变量经导出后即可在子SHELL中使用,2、Shell变量,特殊变量:在shell命令执行过程产生 $0 shell命令的名字 $1$9 传给shell命令的第19个参数 $* 传给shell命令的参数列表 $# 传给shell命令的参数数目 $ 当前shell命令执行的进程号 $? 当前shell命令执行后的退出状态,2、Shell变量,read命令:从键盘读入数据,赋给变量 如:

5、read var1 var2 var3,2、Shell变量,expr命令:对整数型变量进行算术运算 如:expr 3 + 5 expr $var1 / $var2 expr $var3 * 10 要将运算结果赋予变量时: $var4= expr $var1 / $var2 ,3、变量测试语句,变量测试语句用于测试变量是否相等、是否为空、文件类型等,格式: test 测试条件 测试范围:整数、字符串、文件,3、变量测试语句,字符串测试: test str1=str2 测试字符串是否相等 test str1!=str2 测试字符串是否不相等 test str1 测试字符串是否不为空 test -n

6、 str1 测试字符串是否不为空 test -z str1 测试字符串是否为空,3、变量测试语句,整数测试: test int1 -eq int2 测试整数是否相等 test int1 -ge int2 测试int1是否=int2 test int1 -gt int2 测试int1是否int2 test int1 -le int2 测试int1是否=int2 test int1 -lt int2 测试int1是否int2 test int1 -ne int2 测试整数是否不相等,3、变量测试语句,文件测试: test -d file 指定文件是否目录 test -f file 指定文件是否常规

7、文件 test -x file 指定文件是否可执行 test -r file 指定文件是否可读 test -w file 指定文件是否可写 test -a file 指定文件是否存在,3、变量测试语句,变量测试语句一般不单独使用,一般做 为if语句的测试条件,如: if test -d $1 then fi 变量测试语句可用进行简化,如 test -d /etc 等价于 -d /etc ,4、捕捉信号,捕捉信号:用于对捕捉到的信号进行相应处理 trap “” 信号列表 忽略捕捉到的信号 trap 信号列表 对捕捉到的信号,接受默认的操作,5、流控制语句,流控制语句:用于控制shell程序的流程

8、 if then fi语句,例如: if -x /usr/local/apache/apachectl ; then /usr/local/apache/apachectl fi,5、流控制语句,更复杂的if语句: if 条件 then 命令 elif 条件 then 命令 else 命令 fi,5、流控制语句,多个条件的联合: -a:逻辑与,仅当两个条件都成立时,结 果为真 -o:逻辑或,两个条件只要有一个成立, 结果为真,5、流控制语句,fordone语句 格式:for 变量 in 名字表 do 命令列表 done,5、流控制语句,caseesac语句,格式: case 变量 in 字符串

9、1) 命令列表1 ; . 字符串n) 命令列表n ; esac,5、流控制语句,while语句,格式: while 条件 do 命令 done,5、流控制语句,shift指令:参数左移,每执行一次,参数 序列顺次左移一个位置,$#的值减1, 用于分别处理每个参数,移出去的参数 不再可用 例如: $1 $2 $3 $4 ,$1,$2,$3,$4,5、流控制语句,命令的条件执行:&和| &:连接两个命令,只有当前一个命令 执行成功时,才执行后一个命令 |:连接两个命令,只有当前一个命令 执行失败时,才执行后一个命令 例如:find /user -name *.c & echo “found”,5、流控制语句,跳出循环:break和continue break

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论