有趣的Shell脚本学习


倒计时脚本

#!/bin/bash
echo 20秒倒计时开始:
tput sc # 循环40秒
for count in `seq 0 20`
do
tput rc
tput ed
echo -n `expr 20 - $count`
sleep 1
done
echo " 20秒倒计时结束!" 解释 tput 的作用
tput是一个用于操作终端的Linux/Unix shell内置命令,用于设置终端的颜色、大小、位置等属性,
以及让用户更加方便地操作终端。如移动光标、清屏、设置颜色等。 tput sc:tput sc是控制台控制终端的一个命令,用于保存当前控制台的光标位置。
tput rc:tput rc是控制台控制终端的一个命令,用于恢复之前保存的控制台光标位置。
tput ed:tput ed是控制台控制终端的一个命令,用于清除从当前光标位置到屏幕末尾的所有文本。 来源:https://blog.csdn.net/MyySophia/article/details/128896067

生成随机数(密码)

head -n 32 /dev/urandom | tr -dc "a-zA-Z0-9@#$%^&*" | head -c 32 && echo

# 注意可以添加不同的特殊字符来进行选用.

判断是否存在内容在执行操作

log=/usr/nginx/log/error.log
N=30 #设定阈值
while :do
#查看访问日志的最新300条,并统计502的次数
err=`tail -n 300 $log |grep -c '502" '`
if [ $err -ge $N ]
then
/usr/nginx/nginx -s reload
#设定60s延迟防止脚本bug导致无限重启php-fpm服务
sleep 60
fi
sleep 10
done

判断文件是否存在, 然后创建新文件.

while true
do
if [ -f "/zhaobshresult/result1.ok" ] && [ -f "/zhaobshresult/result2.ok" ] ; then
echo "文件存在"
touch /zhaobshresult/result.ok
exit 2
else
echo "文件没有全部存在, 等待一秒继续检查"
fi
sleep 1
done

按照文件大小进行拆分. 分为两个目录.

du -ahd 1 |grep sql$ |sort -k1h |awk '{print $2}' >list
num=0
mkdir -p a
mkdir -p b
for i in `cat list` ; do
let num=num+1
if (($num % 2 == 1)) ; then
mv $i a
else
mv $i b
fi ;
done

判断文件是否存在然后切分文件名

while true ;
do
if [ -f "data.ok" ] ; then
du -ahd 1 |grep txt$ |sort -k1h |awk '{print $2}' |cut -c 3- >list
echo "" >AE1.ok1
echo "" >AE2.ok1
num=0
for i in `cat list` ; do
let num=num+1
if (($num % 2 == 1)) ; then
echo $i >> AE1.ok1
else
echo $i >> AE2.ok1
fi ;
done
mv -f AE1.ok1 AE1.ok
mv -f AE2.ok1 AE2.ok
echo "AE1.ok和AE2.ok. 均已经准确生成."
exit 2
fi
echo "未监测到 data.ok. 继续进行循环"
sleep 1
done

有趣的Shell脚本学习的更多相关文章

  1. 笔记——shell脚本学习指南

    <shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...

  2. Shell 脚本学习资料搜集

    Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...

  3. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

  4. 转 shell脚本学习指南

    shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...

  5. Shell脚本学习 - 运算符

    继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...

  6. shell脚本学习总结02--数组

    bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array ...

  7. Shell脚本学习指南笔记

    Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...

  8. shell脚本学习之6小时搞定(1)

    shell脚本学习之6小时搞定(1) 简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把 ...

  9. shell脚本学习笔记(符号)

    shell脚本的学习: 1.Shell的作用是解释运行用户的命令,用户输入一条命令,Shell就解释运行一条,这样的方式称为交互式(Interactive),Shell还有 一种运行命令的方式称为批处 ...

  10. shell脚本学习心得

    近来主要捣鼓ubuntu,大多数项目中都用到了sh脚本作为启动脚本等,以前只是大概明白如何使用,今天需要自己修改并运行脚本就碰到了很多问题,所以决定静下心来学习一下shell脚本,学习了几个小时,现将 ...

随机推荐

  1. poweroff详解

    linux下poweroff命令详解 reboot.halt.poweroff三条命令意思作用一样 阅读这三个命令的man帮助信息后,发现实现的是相同的功能. 作用: 重启或者关闭系统 语法: reb ...

  2. APM市场冰火两重天,或许只是行业无处安放的焦虑

    近两年来,无论从国内还是到国外,市场出现一种APM批判的论调,甚至有"传统APM已经落后"的个别声音出现. 可放眼望去,国外主流APM厂商如:DATADOG. Dynatrace. ...

  3. 用 Socket.D 替代原生 WebSocket 做前端开发

    socket.d.js 是基于 websocket 包装的 socket.d 协议的实现.就是用 ws 传输数据,但功能更强大. 功能 原生 websocket socket.d 说明 listen ...

  4. 新一代通信协议 - Socket.D

    一.简介 Socket.D 是一种二进制字节流传输协议,位于 OSI 模型中的5~6层,底层可以依赖 TCP.UDP.KCP.WebSocket 等传输层协议.由 Noear 开发.支持异步流处理.其 ...

  5. Golang 命名返回值和普通返回值

    1.概述 在Go语言中,函数可以有命名返回值和普通(匿名)返回值.命名返回值会被视为定义在函数顶部的变量,并且在使用 return 语句返回时,不再必须在其后面指定参数名,也就是支持"裸&q ...

  6. C# 查找PDF页面指定区域中的文本并替换和高亮

    对PDF文档中的内容进行查找时,可针对文档全篇内容获取查找结果,也可在PDF指定页面中的特定范围内(矩形框区域)进行查找,对获取的查找结果可执行文本高亮或替换等操作,本文将对此作相关介绍(附VB.NE ...

  7. 物联网SIM卡和SIM卡真的不是一回事

    办卡吗,兄弟? 物联网卡?相信大家第一反应都是一愣.大家听过银行卡.电话SIM卡.会员卡-等等,很多人可能都是第一次听说物联网卡.那它到底是个什么东东?它能干什么呢?今天就带大家一探究竟. 那在物联网 ...

  8. EDS从小白到专家丨打造你的专属“数据物流”系统

    "数据快递"如何支撑便捷就医?本期让我们来了解如何使用EDS打造专属的"数据物流"系统...... 本文分享自华为云社区<[EDS从小白到专家]第2期-E ...

  9. 谁说Redis不能存大key

    摘要:推荐使用GaussDB(for Redis)搞定"大key"存储,从根本上解决社区版Redis使用风险. 本文分享自华为云社区<华为云GaussDB(for Redis ...

  10. PNG文件解读(2):PNG格式文件结构与数据结构解读—解码PNG数据

    PNG文件识别 之前写过<JPEG/Exif/TIFF格式解读(1):JEPG图片压缩与存储原理分析>,JPEG文件是以,FFD8开头,FFD9结尾,中间存储着以0xFFE0~0xFFEF ...