欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-09 15:13:57
...

前言

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

效果如下:

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

正文

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

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

绘图

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

在Fedora 25上直接dn安装即可

$ sudo dnf install figlet

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

$ figlet kangkang

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

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

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

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

$ figlet -f bannner kangkang

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

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

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

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

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

用下载好的.flf文件就可画出你想要的东东了。
【好玩的编程】给你的朋友一个惊喜(*nix平台)

设置开关 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

相关标签: 终端