【好玩的编程】给你的朋友一个惊喜(*nix平台)

前言

圣诞节到了,身为单身狗保护协会的一员是不是应该关心一下身边的单身狗呢?
那么就在节日喜庆氛围而单身狗还打开电脑撸码之时,送他一份特别的惊喜吧。

效果如下:

gif

正文

没错,我们要的效果就是 一句惊艳的祝福,然后一切回归正常,就像什么都没发生过~

整个操作可以分为3部分
1.绘图(就是准备好你的祝福啦)。
2.设置惊喜的开关。
3.清除操作痕迹。

绘图

这里因为要在终端上显示,所以我找到一个将字符转换为“画”的软件 Figlet,这个软件也有很多年的历史啦。

在Fedora 25上直接dn安装即可

$ sudo dnf install figlet

使用也很简单,比如我想输出kangkang,就直接

$ figlet kangkang

便绘制好输出在终端上了,当然你也可以进行重定向输出到文件里

这里写图片描述

当然啦,既然我们要绘图,就一定要画得好看。

我们可以通过-f 参数选择字体。

$ figlet -f bannner kangkang

这里写图片描述

figlet自带了一个预览字体的工具showfigfonts,和一个查看本机figlet支持字体(和字符集?)的工具figlist

这里写图片描述

这里写图片描述

当然,官网上的字体更全,你可以在figlet官网上的字体展示 上好好挑挑。
选好一个你喜欢的,然后在官网的字体数据库 处下载。

用下载好的.flf文件就可画出你想要的东东了。
这里写图片描述

设置开关 and 清除痕迹

我们希望的效果是ta能在特定日期收到祝福,所以要对时间进行判断
~/.bashrc的末尾添加一行

if [ `date --iso-8601` == "2017-12-24" ]; then alias ls="/home/kang/.Mygcc/gnak.sh";fi

这里便是用date进行判断,如果到指定日期则会将ls变成我们要执行的脚本,否则什么也不做.

让我们看看我们的惊喜脚本.

# !/bin/bash
# -"- coding: utf-8 -"-
key=1                                      #开关
today=`date --iso-8601` 
if [ $key == 1 -a $today == "2017-12-24" ] #如果开关被设置,并且到了指定日期
then 
    clear                           #先清屏
    cat /home/kang/.Mygcc/todela    #输出我们准备好的画
    sed -i '$d' /home/kang/.bashrc  #删除之前对bashrc的修改
    sed -i '3a key=0' /home/kang/.Mygcc/gnak.sh #将key是指为0,保证脚本只执行一次

else
    ls --color=auto # 执行结束啦,我们的惊喜开关关上,变成了正常的ls
fi

这里的.Mygcc存放我们的惊喜脚本和之前画好的图…emmm挺隐蔽的(这个名字是不是很隐蔽).

最后就是静静等待啦,当然了,如果ta没有打开电脑…GG

猜你喜欢

转载自blog.csdn.net/xiyoulinux_kangyijie/article/details/78895633
今日推荐