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

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. Vue. 之 刷新当前页面,重载页面数据

    Vue. 之 刷新当前页面,重载页面数据 如下截图,点击左侧不同的数据,右侧根据左侧的KEY动态加载数据.由于右侧是同一个页面,在进行路由跳转后,不会再次刷新数据. 解决方案: 右侧的页面中 scri ...

  2. matlab实现一次性实现多个文件夹图片转化为.mat文件

    %这里是主函数:命名为readImg.m; clc;clear; %---read_image; filepath = 'G:\人脸重建\data\src_all\';%图片路径可以根据自己需要修改; ...

  3. Hibernate-实体-对象状态-一级缓存-事务-查询

    一 hibernate中的实体规则 1.1 实体类创建的注意事项 持久化类提供无参数构造         --在调用instance()方法时默认调用空参构造 成员变量私有,提供共有get/set方法 ...

  4. lost connection to MySQL server at waiting for initial communication packet,system error:o

    1 可以先测试mysql本地连接石否正常 2 正常的话查看远程连接的IP在mysql中是否有权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'   IDENTIF ...

  5. Leetcode144. Binary Tree Preorder Traversal二叉树的前序遍历

    给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 递归: class S ...

  6. MySQL与Oracle差异函数对比

    ORACLE:select round(1.23456,4) value from dual MYSQL:select round(1.23456,4) value 2 abs(-1) abs(-1) ...

  7. 如何修改MyEclipse的SVN账户和密码

    如何修改MyEclipse的SVN账户和密码呢? 操作方法:删除C:\Users\Administrator\AppData\Roaming\Subversion\auth\svn.simple文件夹 ...

  8. 【转载】传统以太网和时间敏感网络TSN的区别

    转载连接:http://www.proav-china.com/News/16800.html ——Biamp亚太区高级工程师   Kane Zhang [专业视听网报道]:[摘要]AVB-Audio ...

  9. JQuery或JS判断浏览器内核版本号以及是否支持W3C盒子模型

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support .在更新的 2.0 版本中,将不再支持 IE 6/7/8. ...

  10. $\mathcal{Miemeng}$的病态码风计划

    晚上困的要命,先写个码风计划提提神. 计划目标 抵制无理压行. 抵制不可读代码. 倡导代码艺术化,分层化 具体的一些细节和展示 1>整体 首先要把预读部分(我这么叫的),命名域使用,全局变量定义 ...