实验四

Posted czhj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验四相关的知识,希望对你有一定的参考价值。

一 、 shell 变量基本用法及常用符号使用

(1) 将主提示符改为用户的主目录名

技术分享图片

(2) 将字符串 DOS file c:>\\$student\\*赋值给变量 x,并显示出来

技术分享图片

(3) 在 shell 命令终端输入likes=(cosmos galaxy moon); likes[6]=mars,然后使用 echo 分别显示以下表达式的值,并结合结果,写出表达式的作用。

技术分享图片

(1)echo ${likes[*]} 显示likes数组里的所有值

(2)echo ${likes[@]}显示likes数组里的所有值

(3)echo ${#likes[*]} 统计likes数组中元素的个数

(4)  echo ${#likes[*]} 统计likes数组中元素的个数

 (5) echo ${#likes} 显示数组likes中下标为0的元素(第一个元素)的长度,省略了下标[0]

(6) echo ${#likes[0]} 显示数组likes中下标为0的元素(第一个元素)的长度

(4) 在 shell 命令终端输入name=Phoenix,然后使用 echo 显示表达式①,观察结果;然后输入命令unset name,再输入表达式①观察结果。结合两次结果,写出表达式的作用。      ① ${name:-hello}

 技术分享图片

(5) 在 shell 命令终端输入name=‘/usr/share/doc/apg/php.tar.gz‘,然后使用 echo 分别显示表达式①和②的值,观察结果。

修改 name 的值,让 name=‘/etc/apt/sources.list.d‘,再次使用 echo 分别显示表达式①和②的值,观察结果。结合结果,写出表达式的作用。

① ${name%%.*} ② ${name%.*}

技术分享图片

(6) 在 shell 命令终端输入name=/usr/bin/X11,然后使用 echo 分别显示表达式①和②的值,观察结果。修改name 的值,让 name=‘/etc/apt/sources.list.d‘,再次使用 echo 分别显示表达式①和②的值,观察结果。结合结果,写出表达式的作用。

① ${name#*/} ② ${name##*/}

 技术分享图片

(7) 已知某同学提交的博客文章页面地址 address 如下:

address=‘http://www.cnblogs.com/xyz/p/8569001.html‘ 通过字符串匹配,如何得到其博客主页地址: homepage=‘http://www.cnblogs.com/xyz‘

写出由变量 address 得到变量 homepage 的 shell 命令实现

技术分享图片

二、shell脚本分析

(1) 使用 vim/gedit 编写 shell 脚本文件 ex1.sh,其内容如下:

 技术分享图片

1、将从命令行输入的以空格为分隔的字符串逆着输出

2、第八行输出$ $count 其中$count为数字 假如count变量的值为3 则cmd=$3

     第九行是每次将count值减一

     第十一行 eval $cmd   cmd=$3  所以等于 eval $3 所以就是输入整个字符串的第三个字符串

 3、几个字符串执行几次

4、第一次执行cmd为$3 

     第八次执行cmd为$1

(2) 使用 vim/gedit 编写 shell 脚本文件 ex2.sh,其内容如下:

 

技术分享图片

1、查找出来的当前使用用户的名字传给$1

2、如果没找到当前用户将limitingstring值传给$1

(3) 使用 vim/gedit 编写 shell 脚本文件 ex3.sh,其内容如下:

技术分享图片

技术分享图片

该脚本功能是将当前文件夹下的所有.sh格式的文件复制,新文件名为为原文件名加上后缀".BACKUP--日期--时间"。

(4)使用 vim/gedit 编写 shell 脚本文件 ex4.sh,其内容如下:

技术分享图片

技术分享图片

        技术分享图片

1 、输出行号和变量

2、若没有在命令行输入参数 就执行nl函数

3、当输入的第一个参数为真实文件时候就读入 读入之后删除这个参数 并继续读入下一个参数

三 脚本编写

(1)编写一个shell脚本,它把第二个位置参数以及其后的各个参数指定的文件复制到第一个位置参数指定的目录中。

 技术分享图片

(2)打印给定目录下的某些文件,由第一个参数指出文件所在的目录,其余参数是要打印的文件名。

技术分享图片

(3)利用for循环将当前目录下的.c文件移到指定的目录下,并按文件大小排序,显示移动后指定目录的内容

技术分享图片

(4)设计一个程序cuts,它由标准输入读取数据,获取由第一个参数n和第二个参数m所限定范围的数据,n和m都是整数,即从输入的字符串中抽取第n个字符至第m个字符之间的所有字符(包括这两个字符)。例如:

技术分享图片

 

技术分享图片

 

(5)猜数字游戏,具体要求如下:

①写一个函数random_100生成0~100之间的随机数

②用户从键盘输入竞猜数字,如果猜错了,提示用户所猜数字偏大或偏小,用户继续猜,直到猜对为止。

技术分享图片

技术分享图片

 

 

 

 

 

 

以上是关于实验四的主要内容,如果未能解决你的问题,请参考以下文章

20165332实验四 Android开发基础

2018-2019-20175205实验四《Android程序设计》实验报告

区块链技术与应用实验报告(实验四)

区块链技术与应用实验报告(实验四)

区块链技术与应用实验报告(实验四)

实验四 《Android开发基础》 20175301李锦然实验报告