有时候闲着没事干,总想找点什么打发时间,所以又折腾了一个shell脚本,没有具体要做的事情,无非有些好玩,有些作用
彩色时间,在shell里面显示一个绚丽的时间
动态时间,可以作为shell待机屏保,还能实时查看当前的时间,个人觉得有些小爱好的朋友可以玩玩,基于写vue脚本的时候启动控制台的特殊字体
shell对话,制作一个选项供用户选择,以实现不同的目标,比如版本号选择
密码设置,可以通过该对话框让用户设置某个程序的密码,功能与对话相似,支持限时输入
版本检测,可以使用该检测函数发散思维,检测你想检测的所有软件版本
由于我的环境是centos 7 无法直接安装toilet,需要提前安装repo源,所以我把源下载到本地,从本地安装,省去后面自行查找的问题,我把这个源放在资源地址里面,大家自行下载
centos-7-x86-64-libcaca-devel-0.99-0.19.rpm https://download.csdn.net/download/lgamep/86894508
centos-7-x86-64-libcaca-0.99-0.19.beta19.el7 https://download.csdn.net/download/lgamep/86894502
#!/bin/bash
curpwd=$PWD
LOG_FILE=/tmp/log.txt
phpversion=`php -r "echo phpversion();"`;
function toiletd() {
if hash toilet 2>/dev/null; then
echo "$(date '+%D %T' | toilet -f term -F border --gay)";
else
echo 工具toilet缺省,安装toilet
cd ~/
yum install -y $curpwd/centos_7_x86_64_libcaca-0.99-0.19.beta19.el7.centos.x86_64.rpm
yum install -y $curpwd/centos_7_x86_64_libcaca-devel-0.99-0.19.beta19.el7.centos.x86_64.rpm
wget http://caca.zoy.org/raw-attachment/wiki/toilet/toilet-0.3.tar.gz && tar zxvf toilet-0.3.tar.gz && cd toilet-0.3 && ./configure && make && make install
cd ..
rm -rf toilet-0.3.tar.gz
cd $curpwd
echo
echo 开始处理业务
toiletd
fi
}
toiletd
function brand() {
echo ------------------------------------------------------------------------
figlet -f big TRADE.REST
echo ------------------------------------------------------------------------
oclock
}
function oclock() {
watch -n1 "date '+%D%n%T'|figlet -k"
}
if hash figlet 2>/dev/null; then
brand
else
yum install -y figlet
fi
function versionIs() {
if [[ $1 =~ $2 ]]; then
return `true`;
else
return `false`;
fi
}
function getsum(){
local sum=0
for((i=$1;i<=$2;i++)); do
((sum+=i))
done
echo $sum
return $?
}
if versionIs $phpversion 7.2 ; then
echo "php version is 7.2"
else
if versionIs $phpversion 7.1; then
echo "$phpversion is 7.1"
else
echo "Error version by $version"
fi
fi
function choose() {
read -n 1 -p $1 char
if [[ $char == y ]]; then
printf "\n"
else
if [[ $char == n ]]; then
printf "\n"
else
printf "\n"
choose $1
fi
fi
}
function remove() {
choose "您确定要删除数据吗?(请输入y/n):"
if [[ $char == y ]]; then
read -n 1 -p $'请选择删除数据类型: \n 1. 运行日志 \n 2. 模版缓存 \n 3. cache缓存 \n :)' clear
case $clear in
1)
printf "\n"
read -p $'请输入删除最近多少天以前的日志: \n :)' day
echo "开始清理$day天以前的日志"
echo "" >> $LOG_FILE
find $curpwd/runtime/log -mtime +$day -name "*.log" -exec rm -f {} \; -print | tee -a "${LOG_FILE}" | wc -l | xargs echo "Files rming:" >> "${LOG_FILE}";
cat $LOG_FILE
rm -rf $LOG_FILE
echo "$day天以前的日志清理完成"
;;
2)
printf "\n"
echo "开始清理模版缓存"
echo "" >> $LOG_FILE
find $curpwd/runtime/temp -name "*.php" -exec rm -f {} \; -print | tee -a "${LOG_FILE}" | wc -l | xargs echo "Files rming:" >> "${LOG_FILE}";
cat $LOG_FILE
rm -f $LOG_FILE
echo "模版缓存日志清理完成"
;;
3)
printf "\n"
echo "开始清理cache缓存"
echo "" >> $LOG_FILE
find $curpwd/runtime/cache -name "*.php" -exec rm -f {} \; -print | tee -a "${LOG_FILE}" | wc -l | xargs echo "Files rming:" >> "${LOG_FILE}";
cat $LOG_FILE
rm -f $LOG_FILE
echo "cache缓存清理完毕"
;;
*)
printf "\n"
echo "Usage: [1|2|3]"
remove
;;
esac
else
printf "\n"
echo '没有删除任何日志'
fi
}
function countdown() {
read -t $1 -n $3 -sp $2 args
echo $args
return $?
}
function setpwd() {
pwd1=$(countdown 20 "请输入密码(20秒内):" 8)
echo
pwd2=$(countdown 20 "请再次输入密码(20秒内):" 8)
printf "\n"
if [[ $pwd1 == $pwd2 ]]; then
echo "密码与确认密码一致,验证通过"
else
echo "密码与确认密码不一致,验证失败"
fi
}
function Cls() {
printf "\033c"
echo ------------------------------------------------------------------------
figlet -f big TRADE.REST
echo ------------------------------------------------------------------------
toiletd
}
function Back() {
echo ------------------------------------------------------------------------
figlet -f big TRADE.REST
echo ------------------------------------------------------------------------
toiletd
}
function option() {
read -n 1 -p $'你想做点什么?\n 1. 显示屏保(动态时钟) 2. 删除数据 3. 统计数量和: \n 4. 设置密码 5. 退出 \n :)' id
case $id in
1)
Cls
printf "\n"
oclock
printf "\n"
Back
option
;;
2)
Cls
printf "\n"
remove
printf "\n"
Back
option
;;
3)
Cls
printf "\n"
read -p "请输入开始,结束数字 计算开始-结束之间的总和:" m n
total=$(getsum $m $n)
echo 开始到结束之间的和值为 $total
printf "\n"
Back
option
;;
4)
Cls
printf "\n"
setpwd
printf "\n"
Back
option
;;
5)
Cls
echo
exit 8
;;
*)
Cls
printf "\n"
echo "Usage: [1|2|3|4|5]"
Back
option
;;
esac
exit 0
}
option