文档详情

shell编程.ppt

发布:2017-06-05约3.61千字共31页下载文档
文本预览下载声明
一、什么是shell脚本 UNIX shell UNIX系统程序,用于用户命令的解释与执行 拥有自己的编程语言,用于完成复杂的管理任务 shell脚本 由shell编程语言编写的程序 解释执行 UNIX系统本身有大量的shell脚本,进行系统管理 不同的shell有不同的脚本语法,只能运行自己的脚本 二、运行shell脚本 三种运行方式 直接执行:在shell下键入脚本名称 需要用户拥有脚本的可执行权限 脚本为当前shell的脚本 运行sh命令(Linux下是bash),以脚本为参数 强制当前shell执行脚本(不管是否类型匹配) 需要在脚本头部加上#! /bin/sh来实现 脚本当普通命令执行,需要用户可执行权限 一、变量 shell变量 被赋予了名称的主存单元,因而可以通过对变量名的引用访问特定内存空间 在脚本程序中的作用与普通程序中的变量类似 无类型,值均被当作字符串 两种类型 环境变量: 用户自定义变量: 二、环境变量 环境变量 用于设置shell的运行环境,并保证shell命令的正确执行 每个shell子进程都拥有所有shell环境变量的拷贝 公共的环境变量在启动文件/etc/.profile(Linux下为/etc/profile)中设置 用户也可以在自己主目录下的.profile(Linux为.bash_profile)设置私有环境变量 环境变量 环境变量 大部分环境变量是可读写的,但是有一些变量是只读的 三、用户自定义变量 自定义shell变量 拥有临时存储空间 脚本程序执行过程中可以改变 无需声明和初始化(空串null string) 四、变量的访问 查看环境变量设置 set命令 [penglizhi@localhost ~]$ set BASH=/bin/bash BASH_ARGC=() BASH_ARGV=() BASH_LINENO=() BASH_SOURCE=() … [penglizhi@localhost ~]$ env命令 功能与set命令一样 System V支持 变量的访问 变量赋值 variable1=v1 variable2=v2, … variableN=vN 例: $name= Peter sex=male age=20 注:如果值中含有空格,则需要使用引号 变量的读取(引用) 变量名前面加$符号 例: $echo $name 变量的访问 导出环境变量 当一个变量创建或修改后,不会被后面的进程所知,就产生了导出的问题 export命令 传递一个或者多个变量的值到任何后继的脚本(进程) 命令格式:export [name-list] 变量的访问 export命令例 $cat display_name echo $name exit 0 $name=“John Kennedy” $echo $name John Kennedy $display_name $export name $display_name John Kennedy $ 变量的访问 变量重置 将变量重置为null string(空串) 使用unset命令 unset [name-list] 变量的访问 读取标准输入 对变量赋值的方法 命令行静态赋值 脚本程序的赋值语句(与静态赋值一样) 用户从标准输入交互式输入 从标准输入对变量进行赋值 命令格式:read variable-list 五、命令替换 命令替换 当一个命令使用反引号“``”括起来时,shell会首先执行该命令,并以其返回结果取代该命令 例: $echo ls ls $echo `ls` aaa.txt abc a.txt~ b.txt common.mk… $ 一、注释与程序头 注释 良好的程序都应该有准确详细的注释 UNIX脚本使用#作为注释标记 程序头 位于程序开始部分的说明性注释文字 一般应该包含 脚本文件名 作者 创建日期 程序功能 解决的问题及采用的算法简单描述 二、条件判断 if语句(二分支判断) 语法 if expression then [elif expression then then-command-list] [else else-command-list] fi 条件判断 条件判断 expression(表达式)的值 用test命令计算 命令格式:test [expression] 例: if test –f “$1” then rm –f $1 fi 条件判断 条件判断 逻辑表达式运算符 -a:逻辑与 -o:逻辑或 !:逻辑非 ():表达式分组 条件判断 示例脚本filedemo #! /bin/sh if test $# -ne 1 then echo “Usag
显示全部
相似文档