- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 Shell 编程 2.1 bash脚本的建立和运行 编写bash脚本程序有两种方式。你可以输入一系列命令让bash交互地执行它们,也可以把这些命令保存到一个文本文件中,然后将该文件作为一个程序来调用。 在执行shell命令时多个命令可以在一个命令行上运行,但此时要使用分号(;)分隔命令,例: [root@localhost root]# ls a* -l; free;df 长shell命令行可以使用反斜线字符(\)在命令行上扩充,例如: [root@localhost root]# echo this is \ long command this is long command 注意:“”符号是自动产生,而不是输入。 2.1.1 bash脚本的建立 bash程序的每一行既可以是bash语句,又可以是bash命令。 下面是一个简单bash脚本: [root@localhost root]# cat scp1 #!/bin/bash #一个简单例子 who pwd date 注意: 程序中的注释行以#符号开始,一直持续到该行的结束。 程序中第一行# !/bin/bash,它是注释语句的一种特殊形式,#!字符告诉系统同一行上紧跟在它后面的那个参数是用来执行本文件的程序。在这个例子中,/bin/bash是默认的shell程序。 2.1.2? 运行bash脚本 方法 (1):运行/bin/bash命令并且把脚本文件名作为它的参数。 [root@localhost root]# /bin/bash scp1 注意:如果你的搜索路径(PATH变量)中包含了/bin目录的话,可以简单地使用bash命令。 方法 (2):脚本文件加上可执行的权限。 [root@localhost root]# chmod u+x scp1 [root@localhost root]# ./scp1 补充实例 例:编写一个shell程序,此程序的功能是:显示root下的文件信息,然后建立一个kk的文件夹,在此文件夹下新建一个文件aa,修改此文件的权限为可执行。 分析:此shell程序中需要依次执行命令: 进入root目录:cd /root 显示root目录下的文件信息:ls –l 新建文件夹kk:mkdir kk 进入root/kk目录:cd kk 新建一个文件aa:vi aa #编辑完成后需手工保存 修改aa文件的权限为可执行:chmod +x aa 回到root目录:cd /root 补充实例 shell程序只是以上命令的顺序集合,假定程序名为mkf。 [root@localhost root]#vi mkf cd /root ls –l mkdir kk cd kk vi aa chmod +x aa cd /root 2.2 shell的变量 bash与其他程序设计语言一样也采用变量来存放数据,使用变量之前通常并不需要事先为它们做出声明。 默认情况下,所有变量都被看作字符串并以字符串来存储,即使它们被赋值为数值时也是如此。 shell和一些工具程序会在需要时把数值型字符串转换为对应的数值以对它们进行操作。 2.2.1 环境变量和用户定义变量 shell变量可以分为两大类型:环境变量和用户定义变量。 环境变量用来定制你的shell的运行环境,保证shell命令的正确执行。 所有环境变量会传递给shell的子进程。 这些变量大多数在/etc/profile文件中初始化,而/etc/profile是在用户登录的时候执行的。 重要的环境变量:表2-1,P46。 2.2.2 变量声明和赋值 变量的声明 bash不一定要声明变量,但有些特殊类型的变量必须要声明。 命令语法:declare [options] [name[=value]] typeset [options] [name[=value]] 功能:声明变量,初始化变量,设置他们的属性。当不使用name和options的时候,显示所有shell变量和他们的值。 常用选项: -a 声明“name”是一个数组 -f 声明“name”是一个函数 -i 声明“name”是一个整数 -r 声明“name”是只读的变量 -x 表示每一个“name”变量都可以被子进程访问到,称为全局变量 2.2.2 变量声明和赋值 例: [root@localhost root]# declare –i age=20 [root@localhost root]# declare –rx OS=LINUX [root@localhost root]# decla
您可能关注的文档
最近下载
- 不寐(失眠症)中医临床路径.pdf
- 中国主要研究所名单(全).docx
- 高中生物 选择性必修一 综合练习卷2 含详细答案解析.pdf VIP
- 教学课件:《国际市场营销学(第三版)》甘碧群.ppt
- 2025年高一历史教学工作计划范文(通用26篇).doc VIP
- 中心小学优秀班主任主要事迹材料推荐登记表.docx VIP
- 质量三检培训.pptx VIP
- 猜数游戏有捷径(教学设计)-2024-2025学年人教版(2024)小学信息技术五年级全一册.docx
- 2023年武汉生物工程学院网络工程专业《计算机网络》科目期末试卷A(有答案).docx VIP
- 2024年中考语文复习:文学常识类选择题专项练习题(含答案解析).pdf VIP
文档评论(0)