shell脚本练习题

Posted lizhizhi

tags:

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

 

1、一个文本类型文件,里面每行存放一个登录者的IP(某些行是重复的),写一个shell脚本输出登录的次数最多的用户;lp_input.txt的内容假设如下

219.217.49.14

175.43.4.87

87.48.98..1

59.73.38.25

219.217.49.14

59.73.38.142

59.73.38.25

219.217.49.14

#!/bin/bash

#test.sh

Sort ip_input | uniq –c | sort | tail -1 | awk ‘{print $2}’

Sort ip_input | uniq –c | sort -r | head -1 | awk ‘{print $2}’

Uniq –c选项他的作用是将重复的去掉,并且在每行前面添加此行重复次数

Sort 命令的默认排序方式是升序,使用 –r选项逆转排序结果,则出现的次数最多的ip则排在第一行

2、文件的拷贝,在根下创建4个文件m1.txt、m2.txt、m3.txt、m4.txt,用Shell编程,实现自动创建,m1、m2,m3,m4.txt,并将m1.txt, m2.txt、m3.txt、m4.txt,将个文件分别拷贝到各自相应的目录下

思路:用touch创建文件,mkdir命令创建目录,使用while循环依次拷贝,目录和文件表示

第一步#!/bin/bash

第二步cd/(cd到根下)

第三步 touch m{1..4}.txt(创建4个文件)

第四步i=1(设置变量)

第五步while[ #i –le 4 ](利用while设置循环次数)

第六步do(做什么)

第七步mkdir m$i

第八步 cp m$i.txt m$i

第九步i=$((i+1))意思每次复制都加一

第十步done 结束语

4、

判断拷贝

Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到dev目录下

思路:

使用read命令从键盘上获取的文件名

如何判断是否是字符设备

第一步#!/bin/bash

第二步echo –e “please input filename ”(echo –e激活转义符 换行且将光标移至下一行的行首)

第三步read FILENAME(使用read命令从键盘上获取文件名,read直接给FILENAME赋值   read –t 3指定读三秒)

第四步if [ -c $FILENAME ]

第五步then

第六步 cp $FLIENAME /dev

第七步else

第八步echo “It’s not character device fliename”

第九步fi结束语

4、创建目录

设计一个Shell程序,在/userdata目录下建立50个目录, 即user1~user50,并设置每一个目录权限,其他用户权限为,读;文件的所有者的权限是:读、写、执行;文件的所有者所在的组的权限为:读、执行

思路 while循环生成文件目录

判断/userdata是否存在,如果不存在直接创建子目录,不存在先创建/userdata再创建子目录

权限赋值rwxr-xr—数字方式754

第一步i=1(先取变量值)

第二步while [ $i –le 50 ]

第三步 do

第四步if [ -d /userdata] 判断有没有这个目录

第五步 then

第六步mkdir –p /userdata/user$I

第七步 else

第八步 mkdir /userdata   mkdir –p /userdata/user$i

第九步fi

第十步chmod 754 /userdata/user$i

第十一步 i=$(($i+1))

第十二步 done

 

以上是关于shell脚本练习题的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本进阶练习题---理解和练习

shell脚本练习实例详解

每日一道shell脚本练习(01)

shell脚本练习

shell脚本练习题

Shell脚本练习题