文档章节

【2018.07.23学习笔记】【linux高级知识 Shell脚本编程练习】

lgsxp
 lgsxp
发布于 07/23 19:36
字数 555
阅读 18
收藏 1

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

#!/bin/bash
sum=0
for i in `seq 1 100`
do
  sum=$[$sum+$i]
done
echo $sum

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

#!/bin/bash
n=0
while [ $n -lt "1" ]
do
  read -p "Please input a number: " n
done

sum=0
for i in `seq 1 $n`
do
  sum=$[$sum+$i]
done
echo $sum

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

#!/bin/bash
cd /root/

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

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

#!/bin/bash

groupadd users

for i in `seq 0 9`
do 

   useradd -g users user_0$i
done

for j in `seq 10 100`
do
   useradd -g users user_$j
done

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

#!/bin/bash

grep 'abc' test.log|awk -F ':' {print $1}|sort -n|uniq -c|sort -n|awk '$1 >10 {print $2}'

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

checkip() {

        if echo $1 |egrep -q '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' ; then
                a=`echo $1 | awk -F. '{print $1}'`
                b=`echo $1 | awk -F. '{print $2}'`
                c=`echo $1 | awk -F. '{print $3}'`
                d=`echo $1 | awk -F. '{print $4}'`

                for n in $a $b $c $d; do
                        if [ $n -ge 255 ] || [ $n -le 0 ]; then
                                echo "the number of the IP should less than 255 and greate than 0"
                                return 2
                        fi
                done
        else

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

}


rs=1
while [ $rs -gt 0 ]; do
    read -p  "Please input the ip:" ip
    checkip $ip
    rs=`echo $?`
done

echo "The IP is right!"

© 著作权归作者所有

共有 人打赏支持
lgsxp
粉丝 4
博文 90
码字总数 187589
作品 0
惠州
如何学习Liunx和个人学习大纲

提醒不甘平凡的我 2009大学刚刚毕业(不是正规大学,没来北京之前,在家里不是打架就是闲逛,家里人怕早晚出事,索性花钱上了这个“大学”)找了一家IT培训机构。当时的培训机构出名两家:“...

jcpokai521
2017/02/28
0
0
[ Linux运维学习 ] 路径及实战项目合集

我们知道运维工程师(Operations)最基本的职责就是负责服务的稳定性并确保整个服务的高可用性,同时不断优化系统架构、提升部署效率、优化资源利用率,确保服务可以7*24H不间断地为用户提供服...

实验楼
2017/11/15
0
0
运维老鸟分享-学好Linux技术大绝招

随着互联网的飞速发展,越来越多的人开始学习 Linux 技术。很多初学者面对 Linux 技术的海洋无从下手,近 1 0年一线互联网运维老鸟为菜鸟总结了学好 Linux 技能的大绝招: 1、基于 VMware 虚...

wgkgood
2017/06/16
0
0
《高级Bash脚本编程指南》十年来首次修订

  新年伊始,开源慕课的知识库上线了。初期提供了《Linux命令大全/Bash 参考》《高级Bash脚本编程指南》两个系列。其他资料正将陆续上线。   其中,《高级Bash脚本编程指南》对于Shell学...

dbtrain
06/26
0
0
Python为什么这么火?

人生苦短,我用Python!对于学习Python的人来说肯定特别熟悉,当然这要归功于python强大的功能:它能把复杂的语言简单化,满足企业运维日常的数据分析和运维系统的管理,编写自动化运维平台,...

让往事随风
2016/05/03
509
2

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7+rsync+sersync实现数据实时同步

一、为什么要用Rsync+sersync架构? 1、sersync是基于Inotify开发的,类似于Inotify-tools的工具 2、sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个...

linjin200
5分钟前
0
0
兄弟连区块链入门教程eth源码分析p2p-udp.go源码分析(二)

ping方法与pending的处理,之前谈到了pending是等待一个reply。 这里通过代码来分析是如何实现等待reply的。 pending方法把pending结构体发送给addpending. 然后等待消息的处理和接收。 ...

兄弟连区块链入门教程
14分钟前
0
0
忘了Python关键语句?这份备忘录拯救你的记忆

今天要介绍的 Python 3 Cheat Sheet 由法国国家科学研究中心(CNRS)的法国机械工程与信息技术实验室(LIMSI)的工程师 Laurent Pointal 总结。这个简单的 Cheat Sheet 专注于从算法/编程开始...

酒逢知己千杯少
16分钟前
0
0
MarkDown转Html在线转换(支持代码高亮,可复制到公众号、今日头条)

MarkDown/Html在线转换能够将md渲染成html并且能保持代码高亮,可以方便的复制待格式的html粘贴到公众号,CSDN,简书,博客园,开源中国等。 扫码体验在线助手小程序 我是java代码 public s...

陈守印
16分钟前
0
0
人工智能视频教程下载

百度网盘学习资源 链接:https://pan.baidu.com/s/1DxkxKIGOagK5Jg9bEzFC0w 提取码:8pra 链接:https://pan.baidu.com/s/1_MmaaTiVdz6PabyWTGF4Vw 提取码:vjg7 更多视频资料 可关注微信公众...

dominic69
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部