文档章节

day19:打印文档中只有一个数字的行|实习日记归档功能|统计一个网段内在线IP|检查脚本错误退出及编辑|随机数字按千分为输出

芬野de博客
 芬野de博客
发布于 01/11 22:55
字数 539
阅读 12
收藏 0

1、用shell实现,把一个文本文档中只有一个数字的行给打印出来。

#!/bin/bash
while read line
do
    n=`echo $line |sed 's/[^0-9]//g'|wc -L`
    if [ $n -eq 1 ]
    then
	echo $line
    fi
done < 1.txt

2、系统logrotate工具,可以完成日志切割、归档。写一个shell脚本实现类似的归档功能。   举例: 假如服务的输出日志是1.log,要求每天归档一个,1.log第二天就变成1.log.1,第三天1.log.2, 第四天 1.log.3  一直到1.log.5。

#!/bin/bash
cd /data/logs
log=1.log
mv_log()
{
    [ -f $1 ] && mv $1 $2
}
[ -f 1.log.5 ] && rm -f 1.log.5
for i in `seq 4 -1 1`
do 
    j=$[$i+1]
    mv_log $log.$i $log.$j
done
mv 1.log 1.log.1

3、写一个shell脚本,把192.168.0.0/24网段在线的ip列出来。

#!/bin/bash
for i in `seq 1 254`
do 
    if ping -c 2 -W 2 192.168.0.$i >/dev/null 2>/dev/null
    then
	echo "192.168.0.$i 是通的."
    else
	echo "192.168.0.$i 不通."
    fi
done

4、写一个shell脚本,检查指定的shell脚本是否有语法错误,若有错误,首先显示错误信息,然后提示用户输入q或者Q退出脚本,输入其他内容则直接用vim打开该shell脚本。

#!/bin/bash
sh -n $1 2>/tmp/sh.err
if [ $? -ne 0 ]
then
    cat /tmp/sh.err
    read -p "请输入q/Q退出脚本。" c
    if [ -z "$c"]
    then
	vim $1
        exit 0
    fi
    if [ $c == q ] || [ $c == Q ]
    then
	exit 0
    else
	vim $1
	exit 0
    fi
else
    echo "脚本$1没有语法错误."
fi

5、输入一串随机数字,然后按千分位输出。   比如输入数字串为“123456789”,输出为123,456,789。

#!/bin/bash
n=`echo $1|wc -L`
for d in `echo $1|sed 's/./& /g'`
do
    n2=$[$n%3]
    if [ $n2 -eq 0 ]
    then
	echo -n ",$d"
    else
	echo -n "$d"
    fi
    n=$[$n-1]
done |sed 's/^,//'
echo

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
芬野de博客
粉丝 15
博文 159
码字总数 275118
作品 0
海淀
程序员
私信 提问
day14:输入数字执行命令|批量创建用户|检测nginx 进程数大于500告警|web服务器日记访问高IP禁掉|找规律

1、写一个脚本,输入数字后执行对应命令: 1 date 2 ls 3 who 4 pwd 难点:在于用read -p 来采集用户的数据,然后用 case 循环来判断; 2、在linux系统下生成user00user09这10个用户,并设置随机...

芬野de博客
01/04
0
0
9个实战及面试常用Shell脚本编写

本章写的Shell脚本例子都比较实用,在面试题中也经常出现,希望大家参考着多动手写写,不要复制粘贴就拿来跑,这样是学不会的! 注意事项 1)开头加解释器:#!/bin/bash 2)语法缩进,使用四个空...

飞奔的骆驼
2017/06/27
0
0
10 个实战及面试常用 Shell 脚本编写

注意事项 1)开头加解释器:#!/bin/bash 2)语法缩进,使用四个空格;多加注释说明。 3)命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。 4)默认变量是全局的,...

Java填坑之路
2018/11/19
0
0
Shell 编程进阶(二)

while循环 语法格式: CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“ true”,则执行一次循环;直到条件测试状态为“ false”终止循环  因...

ljpwinxp
2018/01/01
0
0
高级shell脚本(for、while、if、case)

1、编写脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之,并生成8位随机口令并存在一个文件中,初步提示改口令,显示...

Lightmisa
2017/09/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(11.9)hive操作基础知识

上一篇博客分享了hive的简介和初体验,本节博主将继续分享一些hive的操作的基础知识。 DDL操作 (1)创建表 #建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name ...

em_aaron
今天
0
0
OSChina 周四乱弹 —— 我家猫真会后空翻

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听这个# 我艇牛逼,百听不厌,太好听辣 分享 Led Zeppelin 的歌曲《Stairway To Heaven》 《Stairway To Heaven》- Led Z...

小小编辑
今天
1
0
node调用dll

先安装python2.7 安装node-gyp cnpm install node-gyp -g 新建一个Electron-vue项目(案例用Electron-vue) vue init simulatedgreg/electron-vue my-project 安装electron-rebuild cnpm ins......

Chason-洪
今天
3
0
scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
3
0
通俗易懂解释网络工程中的技术,如STP,HSRP等

导读 在面试时,比如被问到HSRP的主备切换时间时多久,STP几个状态的停留时间,自己知道有这些东西,但在工作中不会经常用到,就老是记不住,觉得可能还是自己基础不够牢固,知识掌握不够全面...

问题终结者
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部