实验二 shell编程.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

您可能关注的文档

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档