




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6讲Linuxshell编程2 主要内容Shell变量参数置换变量算术运算 shell变量用户定义的变量 1 变量名是以字母或下线符打头的字母 数字和下线符序列 并且大小写字母意义不同 2 定义变量并赋值的一般形式是 变量名 字符串3 引用变量值在变量名前面加上一个符号 如果在赋给变量的值中要含有空格 制表符或换行符 那么 就应该用双引号把这个字符串括起来 names ZhangsanLisiWangwu echo names 如果变量值须出现在长字符串的开头或者中间 为了使变量名与其后的字符区分开 避免shell把它与其它字符混在一起视为一个新变量 则应该用花括号将该变量名括起来 例如 dir usr meng cat dir qc m1 c4 命令替换将一个命令的执行结果赋值给变量有两种形式的命令替换 一种是使用倒引号引用命令 其一般形式是 命令表 另一种形式是 命令表 如 dir pwd echo pwd cd home mengqc ls d 5 6 2数组 bash只提供一维数组 并且没有限定数组的大小 类似与C语言 数组元素的下标由0开始编号 对数组元素赋值的一般形式是 数组名 下标 值可以用declare命令显式声明一个数组 一般形式是 declare a数组名读取数组元素值的一般格式是 数组名 下标 定义一个数组并为其赋初值的一般形式是 数组名 值1值2 值n 其中 各个值之间以空格分开 如 A thisisanexampleofshellscript 若没有给出数组元素的下标 则数组名表示下标为0的数组元素使用 或 当作下标 则会以数组中所有元素取代 或 命令unset可以取消一个数组的定义 4 6 4输入 输出命令 1 read命令可以利用read命令从键盘上读取数据 然后赋给指定的变量 read命令的一般格式是 read变量1 变量2 变量个数与给定数据个数相同 则依次对应赋值变量个数少于数据个数 则从左至右对应赋值 但最后一个变量被赋予剩余的所有数据 变量个数多于给定数据个数 则依次对应赋值 而没有数据与之对应的变量取空串2 echo命令显示其后的变量值或者直接显示它后面的字符串如果echo命令带有选项 e 那么在其后的参数中可以有以下转义字符 a b c e f n r t v m xm 例4 6 这是一个特洛伊木马shell脚本示例 echo n Login readnamestty echoecho n Password readpasswdecho sttyechoecho name passwd tmp ttt sleep2echo LoginIncorrect Re enter Please sttycooked 4 6 5位置参数 1 位置参数及其引用位置变量的名称很特别 分别是0 1 2 命令行实参与脚本中位置变量的对应关系如下所示 exam1m1m2m3m4 0 1 2 3 4 5 6 7 8 9 10 11 引用它们的方式依次是 0 1 2 9 10 11 等 其中 0始终表示命令名或shell脚本名 位置变量不能通过一般赋值的方式直接赋值 通过命令行上对应位置的实参传值2 用set命令为位置参数赋值 4 6 6移动位置参数 每执行一次shift命令 就把命令行上的实参向左移一位 即相当于位置参数向右移动一个位置 命令行 ex7ABCDEF原位置参数 0 1 2 3 4 5 6移位后位置参数 0 1 2 3 4 5shift命令不能将 0移走 所以经shift右移位置参数后 0的值不会发生变化 shift命令可以带有一个整数作为参数 4 6 7预先定义的特殊变量 命令行上参数的个数 但不包含shell脚本名本身 因此 可以给出实际参数的个数 上一条命令执行后的返回值 也称作 返回码 退出状态 退出码 等 它是一个十进制数 当前进程的进程号 上一个后台命令对应的进程号 这是一个由1 5位数字构成的数字串 由当前shell设置的执行标志名组成的字符串 表示在命令行中实际给出的所有实参字符串 它并不仅限于9个实参 它与 基本功能相同 即表示在命令行中给出的所有实参 但 与 不同 4 6 8环境变量 1 常用的环境变量HOME 用户主目录的全路径名LOGNAME 即你的注册名 由Linux自动设置MAIL 你的系统信箱的路径PATH shell从中查找命令的目录列表 可以设置它 如 PATH PATH HOME binPS1 shell的主提示符 bash默认的主提示符一般为 s v 其中 s表示shell的名称 v表示bash的版本号PS1 EnterCommand PWD 你当前工作目录的路径SHELL 你当前使用的shellTERM 你的终端类型 2 使用环境变量如果要使用环境变量或其它shell变量的值 必须在变量名之前加上一个 符号 不能直接使用变量名 如 cd HOME3 删除环境变量 unsetNAME 5 6 9环境文件 bash的环境文件包括 bash profile文件 bashrc文件 bash logout文件等 在 bash profile中 设置了环境变量和文件掩码 umask 名为 bashrc的脚本 每次启动bash时便会执行它 它只含有针对bash的命令 可以用来设置别名 bashrc在 bash profile之后执行 bash logout 它仅在退出注册的时候运行 5 6 10export语句与环境设置 1 export语句一个进程在自己的环境中定义的变量是局部变量 仅限于自身范围 不能自动传给其子进程 就是说 子进程只能继承父进程的公用区和转出区中的数据 而每个进程的数据区和栈区是私有的 不能继承 为了使其后的各个子进程能继承父进程中定义的变量 就必须用export 转出 命令将这些变量送入进程转出区 export命令的一般使用形式是 export 变量名 2 环境变量的设置和显示设置变量要用如下形式 变量名 值如果变量值的字符串中带有空格等特殊字符 需要用引号把整个字符串括起来 利用export命令将这些变量输出 使它们成为公用量 如 exportHOMEHZLOGNAMETERM可以利用env命令列出所有的环境变量 包括本进程及以前的 祖先进程 所输出的变量 3 set命令set命令的功能主要有三个 显示迄今为止所定义的全部变量 包括局部量和公用量 用来设定位置参数的值 改变执行shell脚本时的选项设定 可以使用户改变shell的功能 设置标志的一般形式是 set 标志例如 set x关闭标志的一般形式是 set 标志例如 set x 5 6 3变量引用 有效的变量引用表达式有以下形式 name name pattern name name pattern name n name pattern name name pattern name name word name word name name word name name word name 表达式 name表示变量name的值 若变量未定义 则用空值替换 表达式 name 将被变量name的值替换 用花括号括起name 目的在于把变量名与后面的字符分隔开 避免出现混淆 替换后花括号被取消 name n 表示数组变量name中第n个元素的值 表达式 name 和 name 都表示数组name中所有非空元素的值 每个元素的值用空格分开 如果用双引号把它们都括起来 那么二者的含义就有区别 对于 name 它被扩展成一个词 即字符串 这个词由以空格分开的各个数组元素组成 对于 name 它被扩展成多个词 每个数组元素是一个词 如果数组name中没有元素 则 name 被扩展为空串 表达式 name pattern 和 name pattern 如果pattern Shell模式 与name值的开头匹配 那么name的值去掉匹配部分后的结果就是该表达式的值 否则 name的值就是该表达式的值 在第一种格式中 name值去掉的部分是与pattern匹配的最少的部分 而第二种格式中 name值去掉的部分是与pattern匹配的最多的部分 表达式 name pattern 和 name pattern 如果pattern与name值的末尾匹配 那么name的值中去掉匹配部分后的结果就是该表达式的值 否则 该表达式的值就是name的值 在第一种格式中 去掉的部分是最少的匹配部分 而第二种格式中 去掉的部分是最多的匹配部分 表达式 和 它们的值分别是由 和 返回的参数的个数 表达式 name i 该表达式的值是数组name第i个元素值的长度 字符个数 表达式 nane 和 name 它们的值都是数组name中已经设置的元素的个数 表4 2四种参数置换变量的格式与功能 5 8算术运算 bash中执行整数算术运算的命令是let 其语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨国公司文化融合与多元团队管理策略
- 学生安全教育工作总结范文
- 2025-2030医疗可穿戴设备多模态数据融合与慢病管理商业模式创新报告
- 2025-2030动力电池硅基负极产业化障碍与粘结剂技术突破方向
- 2025-2030动力电池正极材料回收率提升工艺
- 2025-2030动力电池梯次利用技术难点与商业模式创新探索
- 2025-2030动力电池回收网络布局优化与梯次利用技术经济性报告
- 2025-2030动力电池回收网点布局优化模型研究
- 2025-2030动力电池回收利用体系构建与环保效益研究报告
- 小学科学实验项目设计与教学案例
- 2025年高考政治(安徽卷)真题评析
- 2025年中国保健电器具市场调查研究报告
- 严格人员进口管理制度
- 电梯成品保护方案(3篇)
- 科技研发公司保密管理制度
- 医院科教相关管理制度
- 无锡信捷校招笔试题目及答案
- 2024第41届全国中学生物理竞赛预赛试题(含答案)
- 《慢性硬膜下血肿》课件
- PRP治疗注意事项
- 2025年泰和县工投建设集团有限公司及子公司招聘笔试参考题库含答案解析
评论
0/150
提交评论