练习题(这里贴的是自己写的代码, 网上给的题目代码我会附加在最下面)

1. 编写shell脚本,计算1-100的和;

 #!/bin/bash
#caculate the sum of numbers from to sum=
for i in `seq `; do
sum=$[$sum+$i]
done
echo $sum

2. 编写shell脚本,要求输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到输入正确的数字为止;

 #!/bin/bash

 read -p "please input a positive interger: " x
while [ $x -lt ]; do
read -p "please input a positive interger: " x
done sum=
for i in `seq $x`; do
sum=$[$sum+$i]
done
echo $sum

3. 编写shell脚本,把/root/目录下的所有目录(只需要一级)拷贝到/tmp/目录下;

(注: 执行程序时需root)

 #!/bin/bash

 for dir in `ls /root/`; do
if [ -d $dir ]; then
cp -r $dir /tmp/
fi
done

4. 编写shell脚本,批量建立用户user_00, user_01, … ,user_100并且所有用户同属于users组;

groupadd,groupdel, useradd, userdel 这类命令几乎没使用过,额好吧,不要给自己找理由。

  #! /bin/bash

 groupadd users

 for i in `seq  `; do

     useradd -g users user_0$i

 done

5. 编写shell脚本,截取文件test.log中包含关键词’abc’的行中的第一列(假设分隔符为”:”),然后把截取的数字排序(假设第一列为数字),然后打印出重复次数超过10次的列;

暂时不会做 :(.....需要学习awk以及sort命令的使用

6. 编写shell脚本,判断输入的IP是否正确(IP的规则是,n1.n2.n3.n4,其中1<n1<255, 0<n2<255, 0<n3<255, 0<n4<255)。

暂时还是不会做

 以下为练习题答案:

 . #! /bin/bash

 sum=

 for i in `seq  `; do

 sum=$[$i+$sum]

 done

 echo $sum

 . #! /bin/bash

 n=

 while [ $n -lt "" ]; do

 read -p "Please input a number, it must greater than "":" n

 done

 sum=

 for i in `seq  $n`; do

 sum=$[$i+$sum]

 done

 echo $sum

 . #! /bin/bash

 for f in `ls /root/`; do

 if [ -d $f ] ; then

 cp -r $f /tmp/

 fi

 done

 . #! /bin/bash

 groupadd users

 for i in `seq  `; do

 useradd -g users user_0$i

 done

 for j in `seq  `; do

 useradd -g users user_$j

 done

 . #! /bin/bash

 awk -F':' '$0~/abc/ {print $1}' test.log >/tmp/n.txt

 sort -n n.txt |uniq -c |sort -n >/tmp/n2.txt

 awk '$1>10 {print $2}' /tmp/n2.txt

 . #! /bin/bash

 checkip() {

 if echo $ |egrep -q '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' ; then

 a=`echo $ | awk -F. '{print $1}'`

 b=`echo $ | awk -F. '{print $2}'`

 c=`echo $ | awk -F. '{print $3}'`

 d=`echo $ | awk -F. '{print $4}'`

 for n in $a $b $c $d; do

 if [ $n -ge  ] || [ $n -le  ]; then

 echo "the number of the IP should less than 255 and greate than 0"

 return 

 fi

 done

 else

 echo "The IP you input is something wrong, the format is like 192.168.100.1"

 return 

 fi

 }

 rs=

 while [ $rs -gt  ]; do

 read -p "Please input the ip:" ip

 checkip $ip

 rs=`echo $?`

 done

 echo "The IP is right!"

shell脚本练习题(更新中...)的更多相关文章

  1. shell 脚本在linux中的应用

    shell脚本在linux中应用广泛,之前一直选用python写脚本来进行一些文件操作,但是最后发现shell脚本非常方便,所以特意来学习下皮毛,便于提高自己效率 定义变量 1 country=&qu ...

  2. shell脚本实现GoDaddy中IPv6的动态域名解析(DDNS)_可在路由中运行

    首先谈一下个人的需求,家里路由拿到了运营商的外网ipv6地址,于是想着将路由的各种服务通过DDNS放到外网上来,这才有下面的动态域名解析折腾.废话不多说,进入正题. 1.首先在godaddy中注册域名 ...

  3. shell脚本练习题

    下面列出了几个linux学习中的shell脚本题目 1.九九乘法表 #!/bin/bash echo "九九乘法表" # 注意((之间不能有空格.加减乘除的格式.还有转义字符\*. ...

  4. Saiku数据库迁移后的刷新脚本-Shell脚本读取数据库中的数据(二十三)

    Saiku数据库迁移后的刷新脚本 之前有谈过对saiku中的数据进行刷新,因为saiku默认会从缓存中查询数据,但是配置不使用缓存又会效率低下... 所以这里就需要做一个数据刷新,每次ETL之后都需要 ...

  5. Shell脚本 统计店中店导出数据

    有一个数据文件  yue.csv  是这样的   #head yue.csv  日期,商家名称,要求在线数,当天在线数,要求在线时长,在线时长达标数,   ……"2017-12-31&quo ...

  6. 利用shell脚本统计文件中出现次数最多的IP

    比如有如下文件test.txt 1  134.102.173.43 2  134.102.173.43 3  134.102.171.42 4  134.102.170.9 要统计出现次数最多的IP可 ...

  7. shell脚本练习题->1

    猜随机数的大小 描述: 写一个猜数字脚本,当用户输入的数字和预设数字(随机生成一个0-100的数字)一样时,直接退出,否则让用户一直输入:并且提示用户输入的数字比预设数字大或者小 分析: 1:随机数字 ...

  8. 用Shell脚本过滤Hadoop中不能訪问的节点

    近期使用的一个集群hp1,由于维护集群的人不给力.节点总是过一段时间就掉一两个.今天发现重新启动hadoop时,HDFS已经进入保护模式了. 决定把slaves节点中的无法訪问的节点所有过滤掉.所以写 ...

  9. shell脚本修改文本中匹配行之前的行的方法

    原创文件,欢迎阅读,禁止转载. 例子中是把 finish 前一行的 "yes" 改成 "YES"有一个方法就是利用sed+awk一起来完成. zjk@zjk:~ ...

随机推荐

  1. /etc/inittab配置文件详解

    init的进程号是1,从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序,init程序需要读取设置文件/etc/inittab.inittab是个 ...

  2. 解决import javafx.geometry.Point2D无法导入的问题

    windows->preferences->java->compiler->errors/warning->deprecated and restricted API-& ...

  3. 谷歌浏览器flash被禁用解决方法

    谷歌浏览器访问设置:chrome://settings/content/flash 把要启动flash插件的网址添加进去

  4. angular1.0 $http jsonp callback

    $http.jsonp(sDUrl,{cache:false,jsonpCallbackParam:'callback'}); https://stackoverflow.com/questions/ ...

  5. php mkdir 777失败

    参考网址:https://www.cnblogs.com/52php/p/5660079.html 在linux系统中在创建文件/文件夹时有一个默认权限,此权限受 umask 设置影响,在/etc/b ...

  6. 移动端H5适配流程

    (一) 由于手机生产商越来越多,不同手机的硬件尺寸又不尽相同,这就给我们的设计适配造成很大困扰.但我们可以围绕从基准分辨率设计,上下进行兼容适配的原则来进行快捷操作.以IOS阵营为例: 图注:移动适配 ...

  7. CSP-S模拟 - 20190916

    这是一套题=.= ABC D1DEF D2 过程-Process Before T1 像DP 迷茫…… T2 像二/三分 T3 不知道惹 可以DP($30\%$) During T1 先打个暴力$N^ ...

  8. jnhs中国的省市县区邮编坐标mysql数据表

    https://blog.csdn.net/sln2432713617/article/details/79412896 -- 1.之前项目中需要全国的省市区数据,在网上找了很多,发现数据要么不全,要 ...

  9. org.hibernate.service.ServiceRegistryBuilder被弃用

    看视频教程是这样写的: //创建配置对象 Configuration config = new Configuration().configure(); //创建服务注册对象 ServiceRegis ...

  10. oracle function学习1

    oracle function学习基层: 函数就是一个有返回值的过程.  首先 知道oracle 使用限制:      函数调用限制: 1. SQL语句中只能调用存储函数(服务器端),而不能调用客户端 ...