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

ProjectDaedalus

共 2599字,需浏览 6分钟

 ·

2023-10-05 12:34


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

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

      
      # 安装
brew install fortune

# 查看版本信息,确认安装成功
fortune -v
ba096115183879b411e05e203316def4.webpfigure 1.jpg

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

      
      ## 下载诗词文件
git clone https://github.com/ruanyf/fortunes.git

# 生成索引文件
cd ./fortunes/data
strfile fortunes && strfile chinese && strfile tang300 && strfile song100
a1724951c8b6f6f21759aecb509d89d0.webpfigure 2.jpg
      
      # 确认 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/
b002ae0e06811028f8543b6ebd7f19b7.webpfigure 3.jpg
      
      # 执行fortune命令,并对每个库设置比例,进行随机抽取
fortune 25% fortunes 25% chinese 25% tang300 25% song100
1470e9e749bc6947f52c31eeae14543a.webpfigure 4.jpgcowsay

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

      
      # 安装
brew install cowsay

用法如下

      
      cowsay "Good"

# 查看可用动物
cowsay -l

# 通过-f选项指定动物
cowsay -f cheese "Good"
2848f122e6937ec7101e51dccd26cd45.webpfigure 5.jpglolcat

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

      
      # 安装
brew install lolcat

效果如下

      
      ll ~ | lolcat
126f4ea7fb62495f20c13987a4e3bae2.webpfigure 6.jpg组合拳

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

04ec1414d679216796a9ad6e6ac7df2b.webpfigure 7.jpg

脚本文件cowSayFortuneBylolcat.sh如下所示

      
      #!/usr/local/bin/zsh
# 打开终端时,随机选择一种动物随机输出一条彩虹效果的格言

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

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

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

现在对该脚本执行权限

      
      # 对脚本赋予执行权限
chmod u+x cowSayFortuneBylolcat.sh
a0a0753ac4d73d7a2aefe83205d937c3.webpfigure 8.jpg

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

      
      ...
# 执行cowSayFortuneBylolcat脚本。打开终端时,随机使用一种动物随机输出一条彩虹效果的格言
~/CustomShellScript/cowSayFortuneBylolcat.sh
...
14f4cdbbc03ec7c00940fcdfbcfeef2b.webpfigure 9.jpg
浏览 19
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报