掌握shell脚本编程和调试的基本用法.docx

上传人:太** 文档编号:38596466 上传时间:2022-09-04 格式:DOCX 页数:31 大小:247.75KB
返回 下载 相关 举报
掌握shell脚本编程和调试的基本用法.docx_第1页
第1页 / 共31页
掌握shell脚本编程和调试的基本用法.docx_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《掌握shell脚本编程和调试的基本用法.docx》由会员分享,可在线阅读,更多相关《掌握shell脚本编程和调试的基本用法.docx(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验指导上机2shell编程指导教师:陈道群一、实验目的及要求目的:1 .掌握shell脚本编程的基本用法。2 .掌握脚本调试的基本用法。要求:1. shell脚本的建立与执行。2. shell脚本中变量和位置参数、环境变量。常用的一般控制结构。二、实验内容指导实验前准备:(1)接收教师的文件(2)启动虚拟机(3)Linux操作系统B_上机报告2, Linux操作系统B_上机报告2_指导”两个文件拷贝到虚拟机下面启动虚拟机9最上方“设备” fUSB9选择自己的U盘分稍候,就会在桌面的左边看到 自己的U盘上网-也可以到我们的学习通课程网站“共享资源” 9下载2个文件。实验内容:在ubuntu下启

2、动终端:Ctrl+Alt+to选择菜单配置文件首选项进行简单配置终端使 用的环境。学号20191106078姓名龚永好上机地点信206专业电子信息工程班级电信1902班时间2021-10-11上机内容2、掌握shell脚本编程和调试的基本用法wsyu)wsyu-VirtualBox:模板/ 图万/ 不载/ 二面/ gaowei / snap/wsyuwsyu-VirtualBox:-$ echo $PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap

3、/b tn: wsyu(3wsyu-VirtualBox: 一 $ PATH=$PATH:/home/wsyuwsyu(dwsyu-VirtualBox:echo $PATH/usr/local/sbtn:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/b tn:/home/wsyuwsyuwsyu-VirtualBox:-$ PATH=$PATH:.wsyuwsyu-VirtualBox:*$ echo $PATH/usr/local/sbin:/usr/local/bin:/usr

4、/sbtn:/usr/btn:/sbtn:/bin:/usr/games:/usr/local/games:/snap/b tn:/home/wsyu:.wsyu0wsyu-VirtuaLBox:*$ chenl.shMon 11 Oct 2021 12:23:05 AM MDT/home/wsyuOctoberSu Mo3 410 EE17 1824 25Tu We5 612 1319 2026 272021Th Fr Sa1 27 8 914 15 1621 22 2328 29 3031snap公共的模板视频图片文档下载音乐桌面chenl.sh gaowei liangrenfeng h

5、eliOwsyuwsyu-VtrtualBox:!此处可以填写多行注释。注意多行注释格式。功能:查询用户是否登陆系统。gsyugwsyu-VtrtualBox:-$ gedit chenl.sh2.建一个名为exc4Lsh脚本,调试脚本:P121例4.11。(1)在终端里,输入命令:gedit exc4_l LshFlFlwsyu)wsyu-VirtualBox:功能:查询用户是否登陆系统。 ! !wsyuwsyu-VirtualBox:-$ gedit chenl.sh wsyuwsyu-VtrtualBox:-$ gedit exc4_ll.sh wsyuQwsyu-VtrtuaLBox:

6、chmod u+x./exc4_ll.sh chmod: u+x./exc4_ll.sh”后缺少操作数 请尝试执行chmod-help来获取更多信息。 wsyuQwsyu-VtrtualBox:-$ chmod u+x. chmod: “u+x.后缺少操作数 请尝试执行chmod -help来获取更多信息。 wsyuwsyu-VtrtualBox: $ chmod u+x.sh chmod: u+x.sh”后缺少操作数 请尝试执行chmod -help来获取更多信息。 wsyugwsyu-VirtualBox:-$ chmod u+x.sh chmod: f,u+x.sh,J后缺少操作数 请尝

7、试执行chmod -help来获取更多信息。 wsyuwsyu-VtrtualBox:-$ chmod u+x exc4_ll.sh wsyuwsyu-VtrtualBox:exc4_llsh exc4_llsh:未找到命令 wsyuQwsyu-VtrtualBox:$ exc4_ll. sh “Type in the user name:* mengqc“mengqc has not logged in the system” wsyuQwsyu-VtrtualBox:$ wsyu wsyu:未找到命令wsyuwsyu-VtrtualBox:-$ exc4_ll.sh “Type in th

8、e user name:“wsyuwsyu :62021-10-11 00:02 (:0)“wsyu has logged in the system* wsyuQwsyu-VtrtualBox:-$ exc4_ll.sh“Type in the user name:“ abc“abc has not logged tn the system” wsyuQwsyu-VirtualBox: $ exc4_ll.sh “Type in the user name:“ wsyuwsyu :02021-10-11 00:02 (:0)“wsyu has logged tn the “stem” wsy

9、uwsyu-VirtualBox:-$ |(2)运行方法:chmod u+x ./ exc4 1 l.sh exc4_l l.sh运行 输入一个不存在的用户,比方abc输入 一个存在的用户,比方wsyuFlwsyu)wsyu-VirtualBox: abc“abc has not logged in the system” wsyuwsyu-VirtualBox:-$ exc4_ll.sh “Type tn the user name:“wsyu wsyu2021-10-11 00:02 (:0)Mwsyu has logged in the systum”wsyuwsyu-VtrtualBo

10、x:-$edit exc4 16.shwsyuQwsyu-VirtualBox:bash +xchenl.shbash: +1:无效的选项用法:bash GNU长选项选项.bash GNU长选项选项脚本文件.GNU长选项:-debug-debugger-dump-po-strings-dump-strings-help-init-ftle-login-noedittng-noprofile-norc- -posix-pretty-print-reftie-restricted- -verbose-versionShell选项:-irsD 或-c命令或-0 shopt 选项-abefhkmnpt

11、uvxBCHP 或 o v选项(仅适合调用)wsyuQwsyu-VtrtualBoxS bash -x chenl.sh + dateMon 11 Oct 2021 12:54:30 AM MDT+ pwd/home/wsyu+ calOctober Su Mo Tu We2021Th Fr Sa1 23.建一个名为exc46.sh脚本,调试脚本:P129例4.16。(1)在终端里,输入命令:gedit exc4_16.shFlwsyu)wsyu-VirtualBox: + pwd /home/wsyu+ calOctober Su Mo Tu We2621Th3 4 510 ED 1217

12、18 1924 25 2661320277142128Fr 18152229Sa 2916 23 3031 + Is 公共的 模板 + echo hello视频文档音乐chenl.sh图片 下载 桌面exc4_ll.sh helloexc4_16.sh gaowetliangrenfeng tmpl snapwsyuwsyu-VtrtualBox:Is 公共的视频文档音乐chenl.sh模板图片 下载 桌面exc4_ll.shexc4_16.sh gaowettmpl snapwsyuwsyu-VtrtualBox:-$ chmod u+x exc4_16.shwsyuQwsyu-Vtrtua

13、lBox:$ exc4_16.sh/home/wsyu/exc4_16.sh:行 16: (: iv=:语法错误:wsyuwsyu-VtrtualBox:-$ exc4_16.sh 10 *需要操作数(错误符号是“=”) * *wsyuQwsyu-VtrtualBox:-$ exc4_16.sh 16 *Flwsyu)wsyu-VirtualBox: 31 + Is公共的视频文档音乐chenl.sh exc4_16.sh 模板 图片下载桌面exc4_ll.sh gaowei+ echo hello hellowsyuwsyu-VtrtualBox:$ Is chenl sh exc4_16.

14、sh模板 图片 下载 桌面exc4_ll.sh gaowei wsyuQwsyu-VirtualBox:-$ chmod u+x exc4_16.shwsyuwsyu-VirtualBox:-$ exc4_16.sh/home/wsyu/exc4_16.sh:行 10: (: t=:语法错误: wsyuwsyu-VtrtualBox:$ exc4_16.sh 10 *liangrenfeng tmpl snaptmpl snap需要操作数(错误符号是 * * * *wsyuwsyu-VtrtualBox:-$ exc4_16.sh 16 * * * *wsyuQwsyu-VirtualBox:

15、$ I在翻开的exc46.sh脚本中,按照P129:例题4.16,输入以下内容:#!/bin/bash:!P129:例题 4.16例:打印给定行数的星号,第一行一个星号,第二行两个星号运行方式,比方:./exc4_16.sh 10for (i= 1 ;i=$ 1 ;i+)dofor(j=l;j=i;j+)doecho -n #-n表示不换行doneechoecho#什么也不打印,但换行done1 #!/btn/bash 2 :!3 P129:例题4.164例:打印给定行数的星号,第一行一个星号,第二行两个星号5运行方式,比方:./exc4_16.sh 108 for (t=l;t=$l;t+)

16、9 do10for (j=l;j=i;j+)11do121314121314echo#-n表示不换行doneecho#什么也不打印,但换行15 done16Sh-制表符宽度:8 第16行,第1列Sh-制表符宽度:8 第16行,第1列插入运行方法:chmod u+x ./ exc4_16.shexc4_16.sh 5“5”为运行的位置参数,即位置变量$1的值Flwsyu)wsyu-VirtualBox: *wsyu0wsyu-VirtuaLBox:-$ gedit exc4_16.shwsyuwsyu-VtrtualBox:$ Is公共的 视频 文档 音乐 chenl.sh exc4_16.sh

17、 liangrenfenc模板 图片 下载 桌面exc4_ll.sh gaowettmplsnap: prog.sh:未找到命令 wsyuwsyu-VtrtualBox: wsyuQwsyu-VirtualBox:-$ wsyuwsyu-VirtualBox: 4dog cat big apple /home/wsyu/prog.sh wsyugwsyu-VtrtualBox:$ Mon 11 Oct 2021 01:17:48 /home/wsyuprog.shgedit prog.shchmod u+x prog.shprog.sh apple big cat dogchenl.sh ap

18、ple big cat dog AM MDTOctober2021MoTuWeTh3101724314 EO 18 255 12 192661320277142128Fr 1 8152229Sa29162330公共的视频文档音乐 模板 图片下载桌面 heliOchenl.sh exc4_16.sh liangrenfengexc4_ll.sh gaowetprog.shsnap tmplwsyuwsyu-VtrtualBox:-$ prog.sh apple big cat dog 4dog cat big apple /home/wsyu/prog.sh wsyuwsyu-VtrtualBo

19、x:$.调试脚本prog.sh,并分析其功能: (1)在终端里,输入命令:gedit prog.sh在翻开的prog.sh脚本中,按照P141:习题4.8,输入以下内容:#!/bin/bash:!本脚本主要使用了位置变量,运行时,耍给出位置参数运行方法:chmod u+x ./ prog.shprog.sh apple big cat dogwsyuwsyu-VirtualBox:* $ Is公共的 视频 文档 音乐 chenl.sh exc4_16.sh liangrenfeng模板 图片 下载 桌面exc4._ll.sh gaoweisnaptmplwsyuwsyu-VirtualBox:

20、 prog.sh:未找到命令 :$ wsyuwsyu-VirtualBox:-$ wsyuwsyu-VirtualBox: 4dog cat big apple /home/wsyu/prog.sh wsyuwsyu-VtrtualBox: Mon 11 Oct 2021 01:17:48 /home/wsyuprog.shgedit prog.shchmod u+x prog.shprog.sh apple big cat dogchenl.sh apple big cat dog AM MDTOctober2021SuMoTuWeTh31017243118255 1219 266 1320

21、277142128Fr 1 815 22 29Sa29162330公共的视频文档音乐 模板 图片下载桌面 hellowsyuwsyu-VirtualBox:5 4dog cat big apple /home/wsyu/prog.sh wsyuwsyu-VirtualBox:$ wsyuwsyu-VtrtualBox:$ wsyuwsyu-VtrtualBox:$chenl.sh exc4 11.shexc4_16.sh gaoweiliangrenfeng prog.shsnap tmplprog.sh applegedit d5t.sh rm d5t.sh Is公共的视频文档音乐chenl

22、.sh 模板 图片 下载 桌面wsyuwsyu-VtrtualBox:$ wsyuQwsyu-VtrtualBox:$ wsyuQwsyu-VtrtualBox:$ 4dog cat big apple /home/wsyu/prog.sh wsyuQwsyu-VirtualBox:$big cat dogexc4_16.sh gaoweiliangrenfeng prog.shsnap tmplgedit prog2.shchmod u+x prog2.shprog.sh apple big cat dogFlFlwsyu)wsyu-VirtualBox: 4 .下面给出了一个shell程序

23、,试着调试,并说明程序完成的功能。#!/bin/bash#d)dir=$l#(2)将位置变量1赋值给变量dirif -d $dir #(3)如果dir所指为目录thencd $dir#(4)for file in *doif-f$file #(5)如果循环变量file所指是普通文件#(6)显示文件file的内容thencat $filefiecho end of file Sfiledoneelseecho bad directory name $dir,?1 #!/btn/bash2 dir=$l3 if -d $dtr #(1)#(2)#(3)4 then5 cd $dir#(4)6 fo

24、r7 do8 iffile in *-f $ftle #(5)9 thencat $file #(6)10 echo end of fileft11 doneelse12 echo bad directory name $dir,*ftSh-制表符宽度:8第15行,第28列插入5 .创立一个shell脚本,它从用户那里接收10个正整数,要求每次输入一个正整数前都在屏幕上提示需要输入新的正整数,最后在在屏幕上并显示已输入10个数字中的最大的数。在终端里,输入命令:gedit上机_6.sh(2)在翻开的prog3.sh脚本中,自己的编程:注意1:分支结构:for (count=l ; count

25、= 10 ; count=count+1)done注意2:提示输入read -p注意3:条件判断:if ()#!/bin/bash1 i=0for (count=l ; count =i) theni=$count;12 echo最大为:$i正在保存文件/home/wsyu/上机_6.sh.sh-制表符宽度:8第12行,第73列 插入最后在在屏幕上并显示已输入10个数字中的最大的数。运行方法:chmod u+x ./ 上机_6.sh上机_6.sh一、实验目的及要求目的:3 .掌握shell脚本编程的基本用法。4 .掌握脚本调试的基本用法。 要求:3. shell脚本的建立与执行。4. shel

26、l脚本中变量和位置参数、环境变量。5. 常用的一般控制结构。二、实验设备(环境)及要求1.硬件要求:CPU在2.0 GHz以上,内存在4G以上,建议8G。2,软件要求:Linux桌面操作系统。三、实验内容1 .使用gedit建立一个脚本,脚本包括date、pwd cal Is等命令,使用不同的方式执行该 脚本。2 .建一个名为exc4l.sh脚本,调试脚本:P121例4.11。3 .建一个名为exc46.sh脚本,调试脚本:P129例4. 16。4 .调试脚本prog. sh,并分析其功能::!P141:习题 4.8运行法法:比方./prog. sh apple big cat dog,请问运

27、行的结果是什么?请解释各行程序的含义,整体完成的功能是什么?*#!/bin/bashcount=$#echo $countcmd=echowhile $count -gt 0 #注意前有空格docmd=,$cmd $count # echo $cmdcount=expr $count - 1 #expr计算后面表达式的值wsyu)wsyu-VirtualBox: wsyu)wsyu-VirtualBox: wsyu)wsyu-VirtualBox: 请输入第3个数: /上机_6.sh:第 留输入第4个数: /上机6.sh:第 渚输入第5个数: /上机6.sh:第 谙输入第6个数: /上机6.s

28、h:第 请输入第7个数: /上机6.sh:第 漕输入第8个数: /上机6.sh:第 诘输入第9个数: /上机6.sh:第 请输入第1。个数: _6.sh:第 :10请输入第3个数: /上机_6.sh:第 留输入第4个数: /上机6.sh:第 渚输入第5个数: /上机6.sh:第 谙输入第6个数: /上机6.sh:第 请输入第7个数: /上机6.sh:第 漕输入第8个数: /上机6.sh:第 诘输入第9个数: /上机6.sh:第 请输入第1。个数: _6.sh:第 :10行:行:行:行:行:行:行:行:read:read:read:read:read:read:read:read:“3,:4:“

29、6:7”:“8,:“9”:不是有效的标识符不是有效的标识符不是有效的标识符不是有效的标识符不是有效的标识符不是有效的标识符不是有效的标识符不是有效的标识符if -z n$DirNamen ; then#判断DirName是否为空wsyuwsyu-VtrtualBox:6.shwsyuQwsyu-VtrtualBox:$ 上机 请输入第1个数:蓍输入第2个数:2请输入第3个数:请输入第4个数:蓍输入第5个数:5请输入第6个数:6请输入第7个数:7请输入第8个数:8请输入第9个数:9请输入第ie个数:10最大为:10wsyuwsyu-VirtualBox:-$ |7.下面给出了一个shell程序,

30、试着调试,并说明程序完成的功能。#!/bin/shDirName=ls /home | grep bakvDirName=ls /home | grep bakv#(1)获取/home中名称包含bak的文件或目录#)mkdir /home/bak ; cd /home/bakfiyy=date +%y、; mm=date +%m ; dd=、date +%d、# (4)BackEtc=$yy$mm$dd_etC. tar.gz# (5)按照年月曰_etc方式构造压缩文件名tar zcvf $BackEtc /etc# (6)压缩 etc 目录并保存在/home/bak 中echo fileba

31、ck finished!*指导:在终端里,输入命令:gedit prog4在翻开的prog4脚本中,输入以上内容。保存(s)# (4)# (5)# (6)正在竟入文件/home/wsyu/prog4.插入prog4翻开9)F1(1)(2)(3)7 BackEtc=$yy$mm$dd_etC. tar.gz8 tar zcvf $BackEtc /etc9 echo Hftieback finished! 1.Sh-制表符宽度:8第9行,第33列 x1 #!/btn/sh2 DirName= Is /root | grep bak3 if -z $DirName ; then4 mkdtr /r

32、oot/bak ; cd /root/bak5 ft6 yy= date +%y ; mm= date +%m ; dd= date +%d运行方法:chmod u+x ,/prog4./prog4此时,运行有问题,因为要在/home下建立一个备份的文件夹,对/etc备份,所以权限不够。正确运行方式是:sudo 7prog4wsyu)wsyu-VirtualBox:wsyu)wsyu-VirtualBox:=i ;诘输入第1个数:/上机6.sh:行7: (: =1:语法错误:需要操作数(错误符号是(=1) 话输入第1个数:/上机6,sh:行7: (: =i:语法错误:需要操作数(错误符号是 造

33、输入第1个数:AM=t)语法错误:需要操作数(错误符号是”)语法错误:需要操作数(错误符号是最大为:9gedtt prog4gedit上机_6.sh chmod u+x prog4 prog3wsyuwsyu-VtrtualBox:$ wsyuwsyu-VtrtualBox:$ 1+已完成 wsyuwsyu-VtrtualBox:$ wsyuwsyu-VtrtualBox:$ prog3:未找到命令wsyuwsyu-VtrtualBox:-$ prog4Is:无法翻开目录oot,:权限不够mkdtr:无法创立目录”oot/bak”:权限不够/home/wsyu/prog4: 4: cd: ca

34、nt cd to /root/bak tar:从成员名中删除开头的/etc/etc/chatscripts/etc/chatscripts/pap/etc/chatscripts/provider/etc/chatscrtpts/gprs/etc/legal/etc/python3/etc/python3/debian_config/etc/hostname/etc/logrotate.conf/etc/logrotate.d/etc/logrotate.d/apport/etc/logrotate.d/rsyslog/etc/logrotate.d/ubuntu-advantage-tool

35、s/etc/logrotate.d/alternatives/etc/logrotate.d/apt/etc/logrotate.d/wtmp/etc/logrotate.d/bootlog8.试编写一个shell程序,该程序能接收用户从键盘输入的成绩,然后根据成绩在屏幕上输出判断: 假设成绩大于等于80分为“优秀”,假设成绩大于等于60分且小于80分为“及格”,假设成绩大于等于 60分为“不合格”,假设分数不在0100之间,那么给出提示:“输入分数错误!在终端里,输入命令:gedit上机_8.sh(2)在翻开的上机_8.sh脚本中,自己的编程:注意1:分支结构:for (count=l ;

36、count = 10 ; count=count+l)dodone注意2:提示输入:1 #!/btn/sh,成绩最好为:$b插入上机_8.sh翻开9)保存(9F11623 done24 echoSh-制表符宽度:8第24行,第16列(count=l ; count 100|$a 100 | $a =b) b=$a;tf($a=80) thenecho ”优秀” elsetf($a60) thenecho 不合格” elseecho ”及格”翻开9)Fl上机_8.sh保存(S)I14161819elseecho ”输入分数错误!”1 #!/btn/bashecho ”请输入成绩:” read a

37、if($a O);thenif($a=80);thenecho ”优秀”elif($a60);thenecho ”不合格”elseecho及格ftsh-制表符宽度:8第19行,第1列插入wsyu)wsyu-VirtualBox: wsyu)wsyu-VirtualBox: wsyu)wsyu-VirtualBox: wsyu)wsyu-VirtualBox: /etc/NetworkManager/etc/NetworkManager/dnsmasq-shared.d/etc/NetworkManager/NetworkManager.conf/etc/NetworkManager/conf.

38、d/etc/NetworkManager/conf.d/default-wifi-powersave-on.conf/etc/NetworkManager/system-connections/tar: /6/快七3。1M39”丫5七6门8。栈C:110(15/有线连接 Z.nmconnectton:无法 open:权限不够/etc/NetworkManager/dtspatcher.d/etc/NetworkManager/dtspatcher.d/pre-down.d/etc/NetworkManager/dispatcher.d/pre-up.d/etc/NetworkManager/d

39、ispatcher.d/no-watt.d/etc/NetworkManager/dispatcher.d/01-ifupdown/etc/NetworkManager/dnsmasq.d/tar:由于前次错误,将以上次的错误状态退出fileback finished! 1. wsyuwsyu-VirtualBox:$ wsyuwsyu-VtrtualBox:-$ wsyuwsyu-VtrtualBox:$ wsyuwsyu-VirtualBox: bash: /home/wsyu/上机_8 .gedit prog4 gedit prog4 gedit 上机_8 上机8.sh sh:权限不够.

40、shwsyuwsyu - VtrtualBox: - $ chmod u+x 上机_8.shwsyuwsyu-VtrtualBox:$ 上机_8.sh/上机_8sh: 3: Syntax error: geditwsyugwsyu-VtrtualBox:-$1 99697wsyuQwsyu-VtrtualBox:$2 997161 已完成wsyuwsyu-VtrtualBox:$99727wsyuwsyu-VirtualBox:11:未找到命令3+退出2wsyuwsyu-VtrtualBox:5gedttBad for loop variable 上机6.sh&上机8.sh&gedit上机_6

41、.sh 上机8.sh&/上机_8.sh: 3: Syntax error: Bad for loop variable上机8.shD -wsyu)wsyu-VirtualBox:wsyu)wsyu-VirtualBox:wsyu)wsyu-VirtualBox:/上机_8.sh:行20:1212:未找到命令3+退出2wsyuQwsyu-VtrtualBox:$3 99932wsyuwsyu-VtrtualBox$/上机_8.sh:行2。: 33:未找到命令3+退出2wsyuwsyu-VtrtualBox:-$ 请输入成绩:着输入成绩:else上机_8.sh 上机8.sh&/上机_8.sh:行20:未预期的符号“else”附近有语法错误 else上机_8.sh 上机8.sh上机8.shwsyudwsyu-VtrtualBox:$ /上机_8.sh:行3:未预期的符号“do”附近有语法错误

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁