linuxb编程-实验二
更新时间:2023-11-03 15:51:01 阅读量: 综合文库 文档下载
- linuxB站谁的视频好推荐度:
- 相关推荐
试验编号: _01_
四川师大 实验报告 2010 年 9月
18日
计算机科学学院 2008 级3 班
姓名:余乐坤 学号:2008110359 指导老师: 实验成绩:
实验二 Shell编程试验
1. 目的要求
(1) 熟悉Shell环境和常用功能;
(2) 掌握Shell基本语法结构,并能编写简单的Shell程序。 (3) 独立完成Shell课程设计——CD Manager 2. 实验内容
(1) 命令补齐功能
? 用date命令查看系统当前时间,在输入da后,按tab键,让shell自动补
齐命令的后半部分。
? 用mkdir命令创建新的目录。首先输入第一个字母m,然后按tab键,由
于以m开头的命令太多,shell会提示是否显示全部的可能命令,输入n。
? 再多输入一个字母k,按tab键,让shell列出以mk开头的所有命令的列
表。
? 在列表中查找mkdir命令,看看还需要多输入几个字母才能确定mkdir这
个命令,然后输入需要的字母,再按tab键,让shell补齐剩下的命令。
? 最后输入要创建的目录名,按回车键执行命令。 ? 多试几个命令利用tab键补齐。 (2) 命令别名功能
? 输入alias命令,显示目前已经设置好的命令的别名。 ? 设置别名ls为ls –l,以长格形式显示文件列表:#alias ls=?ls -l‘。 ? 显示别名ls代表的命令,确认设置生效:#alias ls。 ? 使用别名ls显示当前目录中的文件列表。 ? 在使定义的别名不失效的情况下,使用系统的ls命令显示当前目录中的命
令列表:#\\ls。
? 删除别名ls:unalias ls。 ? 显示别名ls,确认删除别名已经生效:alias ls。 ? 最后再用命令ls 显示当前目录中的文件列表。 ? 写出定义别名cd为cd /etc的命令 alias cd='cd /etc' 。 (3) 输出重定向
? 用ls命令显示当前目录中的文件列表:#ls –l。
使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中:ls –l > list。
? 查看文件list中的内容,注意在列表中会多出一个文件list,其长度为0。这
说明shell是首先创建了一个空文件,然后再运行ls命令:cat list。
? 再次使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重
定向到文件list中。这次使用管道符号>>进行重定向:ls –l >> list。
? 查看文件list的内容,可以看到用>>进行重定向是把新的输出内容附加在
文件的末尾,注意其中两行list文件的信息中文件大小的区别:cat list。
? 重复命令 ls –l > list。 ? 再次查看文件list中的内容,和前两次的结果相比较,注意list文件大小
和创建时间的区别,完成课后第一题。
(4) 输入重定向
? 使用输入重定向,把上面生成的文件list用mail命令发送给自己: mail root
< list。
? 查看新邮件,看看收到的新邮件中其内容是否为list文件中的内容。 (5) 管道
? 利用管道和grep命令,在上面建立的文件list中查找字符串list: cat list
| grep list。
? 利用管道和wc命令,计算文件list中的行数、单词数和字符数:#cat list | wc。 ? 查看和修改Shell变量 ? 用echo命令查看环境变量PATH的值:#echo $PATH。 ? 设置环境变量PATH的值,把当前目录加入到命令搜索路径中去:#PATH
=―$PATH:.‖。
? 用echo命令查看环境变量PATH的值:#echo $PATH。 ? 比较前后两次的变化。 (6) 简单的shell程序
? 习题1:使用Vi将程序menu.sh程序补充完善。 #!/bin/bash
echo \cat<<-ENDIT
#[N]ew a file #[E]dit a file #[D]elete a file #[Q]uit ENDIT read choice
case \
N) echo \ read value
touch $value ;;
E) echo \ read value
?
vi $value ;;
D) echo \ read value
rm $value ;;
Q) TERM=quit
echo \ ;; Esac
思考:执行程序,写出程序的执行结果。
______________________________________________________________________通过选项可以新建,删除 ,编辑文件和退出。
______________________________________________________________________________________________________________________________________ ?
习题2:变量替换(在横线上为语句添加相应的解释)
#!/bin/bash # 打开bash shell解析器 # This is the first Bash shell program of the day. # Scriptname: greetings
# Written by: Barbara Bashful
echo \ # 打印出包括登录名的欢迎字符串 echo \ # 提示当前路径 echo \ # 显示当前机器的节点名字 ls # List files in the present working directory # 显示当前路径包含的文件 echo \ # 显示当前时间和用户名 思考:执行程序,写出程序的执行结果。
______________________________________________________________________
___________________________________________________________________________________________________ ?
习题3:位置变量的设定及使用(在横线上为语句添加相应的解释)
# !/bin/bash
# Scriptname: args
# Script to test command-line arguments
echo The name of this script is $0. #显示当前程序的名称
echo The arguments are $*. #显示传递给程序的所有参数 echo The first argument is $1. #显示第一个参数 echo The second argument is $2. #显示第二个参数 echo The number of arguments is $#. #显示参数个数
oldargs=$* #将参数一字符串的形式赋值给变量oldargs set Jake Nicky Scott # 将Jake Nicky Scott设置为参数变量 echo All the positional parameters are $*. #打印出当前新的所有变量 echo The number of positional parameters is $#. #显示新变量的个数 echo \–bye for now, $1.\ # 向Jake说拜拜 set $(date) #将当前时间设置为参数变量 echo The date is $2 $3, $6. #打印出月,日,时的信息 echo \ #打印出oldargs的值 set $oldargs # 将oldargs的值重新设置为参数变量 echo $1 $2 $3 #显示新的前三个参数变量 思考:执行程序,写出程序的执行结果。__
______________________________________________________________________________________________ ?
习题4:深入理解let 命令的用法。比如我们可以用+=、(())等方式来实现运算符,并在横线上写明运算结果
(1)$ i=5
$let i=5 i=5 (2)$ let i=i+1
$ echo $i 6
(3)$ let \
$ echo $i 8 (4)$ let \ $ echo $i 16 (5)$ i=3 $ (( i+=4))
$ echo $i 7 $ (( i=i-2 ))
$ echo $i 5
?
习题5:命令替换,通过位置变量的方式来实现一个平方的操作—do_square.sh,请在横线上解释相应运行结果
#!/bin/bash
# Scriptname: do_square function square {
local sq # sq is local to the function let \
echo \ echo \
} 函数功能: 计算参数的平方 echo \read number
value_returned=$(square $number) 。
echo \ 输出结果: number 的平方 ?
习题5:阅读下列脚本expr.sh,写出其完成的功能是: 计算1加到100的值
#!/bin/sh NO=100 START=1 SUM=0
echo -n \-n do not output the trailing newline// while [ $NO -gt 0 ] do
SUM=`expr $START + $SUM` START=`expr $START + 1` NO=`expr $NO - 1` done
正在阅读:
linuxb编程-实验二11-03
中国共产党第九次全国代表大会上的报告04-13
人教版《岳阳楼记》原文及课下注释12-05
人教版九年级化学上册期末考试试卷及答案05-02
小学英语教师课堂口语09-22
【2015成都二诊】四川省成都市2015届高三第二次诊断试题 英语 扫描版含答案09-02
广东省经济和信息化委广东省财政厅关于2014年省级中小企业发展专06-15
我是一只流浪猫作文600字06-21
幼儿园室外游戏活动方案06-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 编程
- 实验
- linuxb
- 徐大同中外政治思想史课后题全部答案
- 全国县市乡镇名字
- 2016-2022年中国智能花盆行业分析及发展战略研究报告(目录)
- 公务员考试时政热点:商务会所冷清折射官风之变
- PPGF30带注塑物性表
- 中国戏曲学院舞台美术工程设计与管理(MFA)考研 招生人数 参考书 报录比 复试分数线 考研真题 招生简章
- 学雷锋心得体会
- 2018年首届中国商协会大会赞助方案-中国国际贸易促进委员会商业
- 人教版小学一年级数学上册全册导学案
- 基于单片机的数字电容测量毕业论文 - 图文
- 大厂征地补偿和失地农民安置保障实施办法
- 好风凭借力 正是扬帆时2010总结(2)
- 科学领域数学活动教案:比比谁的多
- 学校仓库管理制度
- 2013中特分析题
- 中基思考题2-4
- 大赛导基题库
- 无线电常用术语大全
- 2018年河北省保定市高阳县中考数学一模试卷
- 大学生创业风险与法律保障调查