一个好玩的签到打印

一个好玩的签到打印

想要实现一个指令实现签到签退并且以一种好玩的形式打印,比如

image.png

只需要以下几步:

  1. 学习bash脚本语言,并且学会使用curl,cut,awk,|(管道符)的使用
  2. 配合相关软件,实现有趣的打印,这里的打印软件我使用的是cowsay和使打印渐变色的软件lolcat
  3. 设置快捷命令(按自己需求设置)

这个博客有一些好玩的打印软件的介绍(167条消息) 有趣的 Linux 命令行软件_zacharyzlj的博客-CSDN博客

开始编写

先说bash语言是什么

用我的话来说:bash就是一个shell程序,bash语言可以按你定好的逻辑自动对系统进行操作

话不多说,直接上操作

先去测试的目录内,新建bash文件

1
touch test.sh

然后再使用编辑器打开它,它的第一行一般都是

1
#!/bin/bash

其中#!的意思是表明文件类型,/bin/bash表示bash程序,那这一行表示他是一个bash程序的文件

然后再学习相应知识,开始编写程序就好

以下是我的签退程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
msg=$(curl -s -d '{"userId": "2100301838"}' -H "Content-Type:application/json" https://at.kexie.space/api/user/signOut)
#使用msg接收返回的数据
results=$(echo $msg | awk 'BEGIN{FS="code"}END{print $2}'| awk 'BEGIN{FS=","}END{print $1}'| awk 'BEGIN{FS=":"}END{print $2}')
#对返回的code进行截取到results,以此判断是否签退成功
#以下是定义一个签退成功的函数out_su()
out_su(){
#截取签到总时间
totaltime=$(echo $msg | awk 'BEGIN{FS="totalTime"}END{print $2}' | awk 'BEGIN{FS=","}END{print $1}' | awk 'BEGIN{FS="\""}END{print $3}')
#截取本次签到时间
accumulatedTime=$(echo $msg | awk 'BEGIN{FS="accumulatedTime"}END{print $2}' | awk 'BEGIN{FS=","}END{print $1}' | awk 'BEGIN{FS="\""}END{print $3}')
#执行以下打印命令
cowsay -f dragon "芜湖 本次摸鱼$accumulatedTime小时 本周共$totaltime小时" | lolcat
}
#签退失败函数
out_err(){
cowsay -f skeleton "你小子不会忘记签到了吧" | lolcat
}
#根据是否成功调用不同函数
if [ $results -eq "0" ];
then
out_su

else
out_err
fi

以下是效果

image.png

配合其他软件打印

其实就用了lolcat和cowsay,这两个软件都很容易使用,可以对照上面注释使用,更详细可以浏览器搜索,没什么好说的

设置快捷命令

因为当我们不在签到文件的目录时总是要敲长长的路径打开很不方便,所以我们可以设置快捷命令快速下班哈哈哈

其实很简单,只需要通过alias命令注册就好

比如我想进入用户Ubuntu的目录

1
alias cdu='cd /home/ubuntu'

将上述设置写到home目录下的相应用户目录的.bashrc文件中(**~/.bashrc**)的

1
2
3
4
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

跟着写上去就好

然后再运行

1
source ~/.bashrc

就OK了


一个好玩的签到打印
http://move-brain.github.io/super_zhu/2022/11/26/一个好玩的签到打印/
作者
super_zhu
发布于
2022年11月26日
更新于
2022年11月26日
许可协议