10 shell编程(1).ppt

上传人:qwe****56 文档编号:70020812 上传时间:2023-01-14 格式:PPT 页数:32 大小:530.50KB
返回 下载 相关 举报
10 shell编程(1).ppt_第1页
第1页 / 共32页
10 shell编程(1).ppt_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《10 shell编程(1).ppt》由会员分享,可在线阅读,更多相关《10 shell编程(1).ppt(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、shell编程(1)基本shell脚本编程基本shell编程导言变量及相关命令结构与流程控制一、什么是shell脚本UNIX shellUNIX系统程序,用于用户命令的解释与执行拥有自己的编程语言,用于完成复杂的管理任务shell脚本由shell编程语言编写的程序解释执行UNIX系统本身有大量的shell脚本,进行系统管理不同的shell有不同的脚本语法,只能运行自己的脚本二、运行shell脚本三种运行方式直接执行:在shell下键入脚本名称需要用户拥有脚本的可执行权限脚本为当前shell的脚本运行sh命令(Linux下是bash),以脚本为参数强制当前shell执行脚本(不管是否类型匹配)需

2、要在脚本头部加上#!/bin/sh来实现脚本当普通命令执行,需要用户可执行权限基本shell编程导言变量及相关命令结构与流程控制一、变量shell变量被赋予了名称的主存单元,因而可以通过对变量名的引用访问特定内存空间在脚本程序中的作用与普通程序中的变量类似无类型,值均被当作字符串两种类型环境变量:用户自定义变量:二、环境变量环境变量用于设置shell的运行环境,并保证shell命令的正确执行每个shell子进程都拥有所有shell环境变量的拷贝公共的环境变量在启动文件/etc/.profile(Linux下为/etc/profile)中设置用户也可以在自己主目录下的.profile(Linux

3、为.bash_profile)设置私有环境变量环境变量环境变量环境变量含义含义PATHshell搜索外部命令或程序的目录ENVUNIX查找配置文件的目录HOME用户登录的主目录CDPATHcd命令搜索的路径TERM用户控制终端的类型EDITOR默认编辑器重要的重要的shell环境变量环境变量环境变量大部分环境变量是可读写的,但是有一些变量是只读的环境变量环境变量含义含义$0程序名$1-$9第1到第9个命令行参数的值$*所有命令行参数的值$所有命令行参数的值$#命令行参数的总数$当前进程的进程ID$?最近一条命令的退出状态$!最近后台进程的进程ID三、用户自定义变量自定义shell变量拥有临时存

4、储空间脚本程序执行过程中可以改变无需声明和初始化(空串null string)四、变量的访问查看环境变量设置set命令penglizhilocalhost$setBASH=/bin/bashBASH_ARGC=()BASH_ARGV=()BASH_LINENO=()BASH_SOURCE=()penglizhilocalhost$env命令功能与set命令一样System V支持变量的访问变量赋值variable1=v1 variable2=v2,variableN=vN例:$name=Peter sex=male age=20注:如果值中含有空格,则需要使用引号变量的读取(引用)变量名前面加

5、$符号例:$echo$name变量的访问导出环境变量当一个变量创建或修改后,不会被后面的进程所知,就产生了导出的问题export命令传递一个或者多个变量的值到任何后继的脚本(进程)命令格式:export name-list变量的访问export命令例$cat display_nameecho$nameexit 0$name=“John Kennedy”$echo$nameJohn Kennedy$display_name$export name$display_nameJohn Kennedy$变量的访问变量重置将变量重置为null string(空串)使用unset命令unset name-

6、list变量的访问读取标准输入对变量赋值的方法命令行静态赋值脚本程序的赋值语句(与静态赋值一样)用户从标准输入交互式输入从标准输入对变量进行赋值命令格式:read variable-list五、命令替换命令替换当一个命令使用反引号“”括起来时,shell会首先执行该命令,并以其返回结果取代该命令例:$echo lsls$echo lsaaa.txt abc a.txt b.txt common.mk$基本shell编程导言变量及相关命令结构与流程控制一、注释与程序头注释良好的程序都应该有准确详细的注释UNIX脚本使用#作为注释标记程序头位于程序开始部分的说明性注释文字一般应该包含脚本文件名作者

7、创建日期程序功能解决的问题及采用的算法简单描述二、条件判断if语句(二分支判断)语法if expressionthenelif expressionthenthen-command-listelseelse-command-listfi条件判断ifexpressionthen-commandsfielse-commandstruefalse条件判断expression(表达式)的值用test命令计算命令格式:test expression例:if test f“$1”thenrm f$1fi条件判断表达式表达式说明说明表达式表达式说明说明表达式表达式说明说明-d file测试file是否为目录

8、int1 eq int2int1是否等于int2strstr是否为空-f file测试file是否为普通文件int1 ge int2int1是否大于等于int2str1=str2str1是否与str2相同-r file测试file是否可读int1 gt int2int1是否大于int2str1!=str2str1是否与str2不相同-s file测试file长度是否为零int1 le int2int1是否小于等于int2-n strstr长度是否大于零-w file测试file是否可写int1 lt int2int1是否小于int2-z strstr长度是否等于零-x file测试file是否

9、可执行int1 ne int2int1是否不等于int2test命令用法命令用法条件判断逻辑表达式运算符-a:逻辑与-o:逻辑或!:逻辑非():表达式分组条件判断示例脚本filedemo#!/bin/shif test$#-ne 1thenecho“Usage:$0 Ordinary_file.”exit 1fiif(test r$1)a(test s$1)thencat$1fi三、循环for语句语法:for variable in arg-listdocommand-listdone功能:对循环变量variable,逐一对其赋以arg-list集合中的值,并执行command-list(循环

10、体)循环doarg-list中还有元素?arg-list中下一个值赋予variabledonecommand-listfor否是循环示例#!/bin/shfor people in plz wl sry zldo echo$peopledoneexit 0循环while语句语法:while expressiondocommand-listdone功能:只要expression值为真,执行command-list中的命令循环示例#!/bin/shpassword=ujnecho“Guess the password!”echo“Enter your password:c”read your_pwdwhile$your_pwd!=$password doecho“Wrong password!”echo“Enter your password:c”read your_pwddoneecho“You are a genius!”exit 0循环continue与break语句continue:忽略后面的执行语句,进入下一轮循环break:提前结束循环与c语言的continue与break的功能一致四、test命令另一种表达方式test命令还可以用下一形式表示 expression 例如test$1 lt 3$1 lt 3 test$#-eq 2$#-eq 2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com