暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

有趣的Shell脚本学习

济南小老虎 2025-01-23
3

倒计时脚本

#!/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

复制

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

whiletrue
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

复制

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

whiletrue ;
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

复制


文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论