问题
一、 在每次通过远程连接进入系统时,告知用户如下信息:
- 最近一段时间,当前用户,也就是你,登录了多少次
- 上一次登录系统,停留了多少时间
- 给用户推荐一句名人名言,唐诗三百首之类的
- 最好还能告知一下当地当日天气预报
- 一个温馨的问候
二、要求显示美观,有一定的颜色
代码
#!/bin/bash
User=`whoami` # 获取当前用户
times=`last | grep ${User} | cut -d " " -f 1 | uniq -c | cut -d " " -f 6` # 获取当前用户登录次数
Time=$(cat a.log) # 读取上次登录时间
hour=$[ ${Time} / 3600 ] # 计算小时
minute=$[ ${Time} % 3600 / 60 ] # 计算分钟
second=$[ ${Time} % 3600 % 60 ] # 计算秒数
echo
echo -e "==============\033[44;37;5;1m欢迎登录\033[0m=============="
echo
echo -e "\033[34;1m${User}\033[0m 先森!欢迎回来!"
echo -e "您总共登录了 \033[33;1m${times}\033[0m 次"
echo -e "您上次在线时长:\033[34;1m${hour}\033[0m 小时 \033[35;1m${minute}\033[0m 分钟 \033[36;1m${second}\033[0m 秒"
echo
Place=xian
echo -e "==============\033[46;33;4;1m天气预报\033[0m=============="
echo
curl -o ./weather.log wttr.in/${Place} 2>/dev/null # 获取天气保存到weather.log文件中
cat ./weather.log | head -n 7 | sed 's/Weather report/所在地区/' | sed "s/${Place}/西安/" # 打印日期
echo
echo -e "==============\033[43;31;2;1m今日诗句\033[0m=============="
echo
fortune-zh # 打印诗句
echo
Sentence=`shuf -n1 ./sentence.log`
echo -e "\033[45;35;1mHi! 又是爱你的一天! ${Sentence}\033[0m"
echo
操作流程
获取当前用户登录多少次:
-
当前用户:使用
whoami
命令保存在User
中 -
登录次数:
times=`last | grep ${User} | cut -d " " -f 1 | uniq -c | cut -d " " -f 6`
# 使用last命令获取登录信息,经过grep筛选出当前用户登录信息,经过cut剪切出用户,经过uniq计算登录了多少次,再用cut剪切出来,即可获取
获取上次登录时长
-
记录登录时间:
在/etc/zsh/zprofile
文件中记录登录时间
LoginTime=`date +"%s"` # 记录登录时间戳
-
记录登出时间:
在/etc/zsh/zlogout
文件中记录登出时间
LogoutTime=`date +"%s"` # 记录登出时间戳
-
计算登录时长并记录到文件中:
在/etc/zsh/zlogout
文件中登录时长并记录到文件中
PassTime=$[ ${LogoutTime} - ${LoginTime} ]
sudo echo ${PassTime} > a.log
-
读取
a.log
里面的数,并计算时分秒
Time=$(cat a.log) # 读取上次登录保存的时长
hour=$[ ${Time} / 3600 ] # 计算小时
minute=$[ ${Time} % 3600 / 60 ] # 计算分钟
second=$[ ${Time} % 3600 % 60 ] # 计算秒数
获取当地天气
-
curl
命令爬取天气信息存储到weather.log
使用txt
文件会有列号
curl -o ./weather.log wttr.in/${Place} 2>/dev/null # 获取天气保存到weather.log文件中,将进度信息重定向到/dev/null
-
读取
weather.log
文件信息,只读取头7行,使用sed
命令将里面的一些关键词替换,显得美观
cat ./weather.log | head -n 7 | sed 's/Weather report/所在地区/' | sed "s/${Place}/西安/" # 打印日期
获取诗句
-
安装
fortune
软件
sudo apt install fortune
-
使用
fortune-zh
命令获取诗句
温馨的问候
-
写一些温馨的句子放在
sentence.log
vim sentence.log
-
随机读取一句
Sentence=`shuf -n1 ./sentence.log`
echo -e "\033[45;35;1mHi! 又是爱你的一天! ${Sentence}\033[0m"
调整格式,显示美观
显示效果