欢迎来到天天文库
浏览记录
ID:22491996
大小:49.50 KB
页数:6页
时间:2018-10-29
《实验三shell编程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验三shell编程实验三shell编程一、实验名称:shell编程二、实验学时:2学时三、实验目的掌握shell脚木的多种常用的执行方式;熟悉shell编程常用语法格式和变量的使用方法;掌握shell编程中常用的循环语句、分支语句、条件语句的使用方法。四、实验步骤1.利用gedit编辑器,在当前用户的家目录下建立一个简单的脚本文件file.sh,其中包括date,cal,pwdjs等常用命令,然后以不同方式执行该脚本。(1)采用输入定向到shell脚本的方法执行:输入命令bash<file.sh(2)
2、不给shell脚本文件对执行权限a)sourceFileName作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无”执行权限”注:该命令通常用命令来替代。如:sourcebash_profile•bash_profile两者等效。source(或点)命令通常用于重新执行刚修改的初始化文档。source命令(从CShell而來)是bashshell的内置命令。点命令(点符号),从BourneShell而来,就是顺序的执行文件里的命令而己。a)sh和bash命令用法:shF
3、ileNamebashFileName作用:在当前相应的bash环境下新建一个子shell读取并执行FileName中的命令。该filename文件可以无"执行权限”。注:两者在执行文件时的不同,是分别用自己的shell来跑文件。sh使用“-n”选项进行shell脚本的语法检査,使用“-x”选项实现shell脚本逐条语句的跟踪,可以巧妙地利用shell的内置变量增强“-x”选项的输出信息等。(1)修改shell脚本的权限为可执行(chmod+xfile.sh)a)./的命令用法:./FileName作用:打开
4、一个子shell来读取并执行FileName中命令。该文件必须冇可执行的权限。注:运行一个shell脚本时会启动另一个命令解释器.每个shell脚本有效地运行在父shell(parentshell)的一个子进程里.这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.shell脚本也可以启动他自已的子进程.这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务.脚本里的变量设置在父进程中无效。b)a)sourcefile.sh或.file.shshfile.s
5、h或bashfile.sh关于这三种执行方式的区别,举例说明:1.新建一个test.sh脚本,内容为:A=12.然后使其可执行chmod+xtest.sh3.运行shtest.sh后,echo$A,显示为空,因为A=1并未传回给当前shell4.运行./test.sh后,也是一样的效果5.运行sourcetest.sh或者.test.sh,然后echo$A,贝!J会显示1,说明A=1的变量在当前shell中1.用alias为较长的命令定义别名,然后执行。例如,将Is-I命令定义别名II,如下图所示。2.熟悉分
6、支语句if的结构。例如:根据输入的分数,判断分数是否及格。对一些参考脚本进行编辑、调试然后执行。参考代码:#!/bin/bashecho-n"pleaseinputaScore:"readscoreecho"youinputScoreis$score"if[$score-ge60];thenecho-n"youpasselseecho-n"youfail"fiecho-n"pressanykeytocontinue"read$GOOUT1.熟悉分支语句case的结构。例如:使用case语句建立一个菜单选择的s
7、hell脚本,对脚本进行编辑并执行。参考代码:#!/bin/bash#displayamenuecho_echo"1Restore"echo"2Backup"echo"3Unload"echo#Readandexcutetheuser'sselectionecho-n"EnterChoice:"readCHOICEcase"SCHOICE"in1)echo"Restore";;2)echo"Backup";;3)echo"Unload";;*)echo"Sorry$CHOICEisnotavalidc
8、hoice";;esac1.脚本的调试Shell程序的调试主要是利用bash命令解释程序的选项。调用bash的形式是:bash-选项Shell程序文件名-v选项使Shell在执行程序的过程中,把它读入的每一条命令行都显示出来,-x选项使Shell在执行程序的过程中,在它执行的每一条命令前加一个+号,然后显示出来,并把每一个变量和该变量所取的值也显示出来。因此,它们的主要区别在于:在执行命令行之前无-
此文档下载收益归作者所有