0%

基于fortune+cowsay+lolcat组合拳的终端美化

这里通过构建fortune、cowsay、lolcat组合拳对Mac终端进行美化

abstract.png

fortune

该命令每次执行时,会随机输出一句人生格言

1
2
3
4
5
# 安装
brew install fortune

# 查看版本信息,确认安装成功
fortune -v

figure 1.jpg

只不过fortune默认的格言库是英文的。这里我们期望能够输出中国的古诗词之类的

1
2
3
4
5
6
## 下载诗词文件
git clone https://github.com/ruanyf/fortunes.git

# 生成索引文件
cd ./fortunes/data
strfile fortunes && strfile chinese && strfile tang300 && strfile song100

figure 2.jpg

1
2
3
4
5
# 确认 games/fortunes 文件夹位置
brew list fortune | grep -E "games/fortunes/" | head -n 1

# 将诗词文件data目录下的内容全部移动到 games/fortunes 文件夹当中
sudo mv fortunes/data/* /usr/local/Cellar/fortune/9708/share/games/fortunes/

figure 3.jpg

1
2
# 执行fortune命令,并对每个库设置比例,进行随机抽取
fortune 25% fortunes 25% chinese 25% tang300 25% song100

figure 4.jpg

cowsay

该命令接受一个文本,然后通过动物说话的图形进行展示

1
2
# 安装
brew install cowsay

用法如下

1
2
3
4
5
6
7
cowsay "Good"

# 查看可用动物
cowsay -l

# 通过-f选项指定动物
cowsay -f cheese "Good"

figure 5.jpg

lolcat

该命令可以对命令行对输出产生彩虹的颜色效果

1
2
# 安装
brew install lolcat

效果如下

1
ll ~ | lolcat

figure 6.jpg

组合拳

现在我们来编写一个Shell脚本。实现启动终端时,会随机选择一种动物随机输出一条彩虹效果的格言。其中,cowsay命令的配置文件路径可通过cowsay -l命令获取

figure 7.jpg

脚本文件cowSayFortuneBylolcat.sh如下所示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/local/bin/zsh
# 打开终端时,随机选择一种动物随机输出一条彩虹效果的格言

# cowsay命令配置文件路径
cowsay_config_path=/usr/local/Cellar/cowsay/3.04_1/share/cows
# 先筛选出配置路径下.cow类型的所有文件。
# 然后通过wc命令的-l选项统计行数,即.cow类型文件的数量
animal_counts=`ls -1 ${cowsay_config_path} | grep "\.cow$" | wc -l`

# 生成一个在[1,cow_counts]范围内的随机数
rand_num=`jot -r 1 1 ${animal_counts}`
# 选择第rand_num个.cow类型文件
animal=`ls -1 ${cowsay_config_path} | grep "\.cow$" | sort | sed -n "${rand_num}p"`

# 输出格言
fortune 10% fortunes 30% chinese 30% tang300 30% song100 | cowsay -f ${animal} | lolcat

现在对该脚本执行权限

1
2
# 对脚本赋予执行权限
chmod u+x cowSayFortuneBylolcat.sh

figure 8.jpg

这里我们使用的Shell为zsh。故在用户目录下的.zshrc文件中添加执行该脚本的命令

1
2
3
4
...
# 执行cowSayFortuneBylolcat脚本。打开终端时,随机使用一种动物随机输出一条彩虹效果的格言
~/CustomShellScript/cowSayFortuneBylolcat.sh
...

figure 9.jpg

请我喝杯咖啡捏~

欢迎关注我的微信公众号:青灯抽丝