- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二 shell编程
实验2:Shell编程
一、实验目的
(1)了解Linux各shell环境,熟悉shell下可用资源。
(2) 掌握shell中的变量的使用方法
(3)掌握基本的shell编程语法,主要包括shell中的test、条件执行、循环控制语句。
二、实验要求
(1)按照实验内容独立编写shell程序,并在Linux环境下调试运行。
(2)提交实验报告。
三、实验原理和实验内容
(1)理解位于shell中的第一行 #!/bin/bash
当shell执行一个程序时,会要求UNIX内核启动一个新的进程,以便在该进程里执行指定的程序。内核知道如何为编译性程序(即课上所讲到的elf格式文件)做这样的事情,但是shell脚本并非编译型程序,当shell要求内核执行它时,内核将无法做这件事情,只能回应”not executable file”这样的错误信息,shell收到此错误信息时,就会知道这不是一个编译型程序,而是一个脚本,就会启动/bin/bash副本来解释并执行该脚本程序,这也就是为什么每个脚本程序第一行必须加#!/bin/bash的原因
(2)脚本程序的执行方式
当用vi编辑器或者cat等方式编辑好一个shell脚本后,用ls –l 命令查看该脚本文件的类型,可以发现其执行位为-,unix系统出于安全性的考虑,需要对编辑后的脚本程序授予执行权限后,方能执行,授予执行权限的方式是:
chmod +x filename
(3) shell中变量的使用
在shell中,引用变量时,必须将$符号置于变量名之前,例如:
echo $PATH
当向变量写入值时,则不需要$符号。
也就是说,我们可以引用变量的名称,也可以在需要变量的值的时候通过$符号引用变量的值,但是名称只会当做普通字符串,除非是在赋值语句中,例如
YOUR_NAME=steve
echo “the var YOUR_NAME is $YOUR_NAME”
(4)变量的赋值
Shell变量的赋值主要有三种方式,主要有
显式定义 VAR=value
读取: read VAR
命令替换: VAR=`date`、VAR=$(date)
(4)条件执行
条件执行是指如果满足某些条件才执行代码,如果没有条件执行,则只能逐
条执行命令
复习课本中的test,以及测试的不同方式,如测试文件是否存在的标志用-e,以及测试文件是否可以读、写、执行的标志。
(5)使用循环进行流控制
重点复习shell中的for循环、while循环的语法,通过实际脚本理解它们在shell编程中的使用方法
循环的使用时机
在已知要对一个元素集合执行相同操作时,而不是重复执行某个操作直到满足某个条件时,使用for循环最合适.在没有需要遍历的列表但在具有决定循环何时结束的可测试条件时,使用while循环最合适
四、实验环境
人手一台装有ubuntu Linux操作系统的计算机。
五、实验步骤和方法
1、在Linux下使用vi编辑器将已经设计好的程序输入并保存在自己的目录下。
实验1 Shell环境下的交互式输入输出
1.在命令行中输入以下shell程序:
cat first.sh
#!/bin/bash
echo –n “enter your name:”
read var
echo “hello , $var”
2、调试、运行程序,输出实验结果。
实验二 从文件读取
刚才的实验1是从终端上读取输入后赋值给变量(实际上,终端也是从文件读取,因为unix下一切皆为文件),编写下面的代码可以清晰的看到这一点:
1.在命令行中输入以下shell程序:
read message /etc/motd
echo $message
2、输出实验结果。
实验三 条件执行
1.通过条件测试语句,测试unix中不同文件的类型
运行rwx.sh程序,分别测试/etc, /etc/hosts, /home的类型
2、输出实验结果。
实验四 数值测试
1.复习课本中的数值测试,有6种数值比较测试可供使用,numbergues.sh脚本是猜数字的游戏,阅读该脚本程序,理解后并执行,验证shell脚本中数值比较的条件测试。
2、输出实验结果。
实验五 向for提供数据
通过三个不同的例子(fruit-var.sh,fruit-read.sh, fruit-cmdline.sh)学习在shell中如何向for提供数据
实验六 while循环的使用方法
通过readfile.sh 学习在shell中如何读取文件
While循环一个常用的方法是逐行读取文本文件中的内容,整个whlie read/do/done命令被shell当成单条命令,与实验二中从文件读取文件的例子进行比较,理解$filename的重定向方式 与 read
您可能关注的文档
- 10.《基因概念与表达》测试卷.doc
- 10.1 四则运算与运算定律.ppt
- 1001关于举办第二届届大学生职业生涯规划设计大赛通知.doc
- 塑钢窗制作安装项目可行性研究报告(发改立项备案+2013年最新案例范文)详细编制方案.docx
- 100个问家长问题.doc
- 增值税发票税控开票中的税务问题与解答.docx
- 声优们的告白以及早安CALL翻译.docx
- 100句关于勤奋读书名言.doc
- 10.财务报告阅读与分析.ppt
- 10--1、电流基本概念.ppt
- 白天晚上教学课件.ppt
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题带答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解一套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及完整答案详解1套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解1套.docx
- 2025年山东菏泽市事业单位招聘急需紧缺岗位目录(第一批)笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及答案详解1套.docx
- 画西瓜教学课件.ppt
最近下载
- 2025广西南宁市交通运输综合行政执法支队招聘编外聘用人员5人备考试题及答案解析.docx VIP
- 青少年航天知识竞赛题库及答案.docx
- 环氧地坪施工工艺流程.docx VIP
- DB 34T 2752-2016 用人单位职业病危害现状评价导则.docx VIP
- 2025年高考全国1卷读后续写讲评课件 -2026届高考英语一轮复习专项.pptx
- MiniMk8调试与接线资料.pdf VIP
- 五菱宏光MINIEV说明书.docx VIP
- 2024初中物理教师进城考试模拟试卷及参考答案.pdf VIP
- 秦-使用手册-20131215.pdf VIP
- 四库全书基本概念系列文库:遵义府志.pdf VIP
文档评论(0)