前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Linux]自定义fortune显示

[Linux]自定义fortune显示

作者头像
用户9314062
发布2022-05-20 14:28:28
7350
发布2022-05-20 14:28:28
举报
文章被收录于专栏:LINUX开源玩家LINUX开源玩家

以前介绍过组合fortune和cowsay在终端启动时候显示一段诗词或格言,如

代码语言:javascript
复制
____________________________________________________________________________
/ 《江乡故人偶集客舍》 作者:戴叔伦                                  \
| 天秋月又满,城阙夜千重。还作江南会,翻疑梦里逢。风枝惊暗鹊,露草覆寒虫。|
\ 羁旅长堪醉,相留畏晓钟。/
 ----------------------------------------------------------------------------
       \ (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~

两个不务正业的小程序(上)

两个不务正业的小程序(下)

今天突然想把自己喜欢的文字收集起来,放到里面显示,试了试,操作很简单。

步骤如下:

1. 创建一个空文件,如myfortunes

在里面输入自己希望显示的诗句、格言或者字符,如

代码语言:javascript
复制
我是清都山水郎,天教分付与疏狂。--朱敦儒
%
银鞍照白马,飒沓如流星。--李白
%
满堂花醉三千客,一剑霜寒十四州。--贯休
%
想乌衣年少,芝兰秀发,戈戟云横。--叶梦得
%
少年侠气,交结五都雄。肝胆洞。毛发耸。立谈中。死生同。一诺千金重。--贺铸
%
我见青山多妩媚,料青山见我应如是。--辛弃疾
%
欲买桂花同载酒,终不似,少年游。--刘过
%
一点浩然气,千里快哉风。--苏轼
%
东武望馀杭。云海天涯两杳茫。何日功成名遂了,还乡。醉笑陪公三万场。--苏轼
%
我醉歌时君和,醉倒须君扶我,惟酒可忘忧。--苏轼
%
且趁闲身未老,尽放我,些子疏狂。--苏轼
%
江南好,千钟美酒,一曲《满庭芳》。--苏轼
%
我欲穿花寻路,直入白云深处,浩气展虹霓。--黄庭坚
%
都将闲日月,来醉百花前。--俞国宝
%
乘风好去,长空万里,直下看山河。--辛弃疾
%
休对故人思故国,且将新火试新茶。诗酒趁年华。--苏轼
%
宫里吴王沉醉,倩五湖倦客,独钓醒醒。--吴文英
%
愿将腰下剑,直为斩楼兰。--李白
%
桃李春风一杯酒,江湖夜雨十年灯。--黄庭坚
%
谁似东山老,谈笑静胡沙。--叶梦得
%

      oo0oo
     o88888o
    88  .  88
   (| - _ - |)
    o\  =  /o
 _____/---\______
 佛祖保佑 永不死机

2. 用命令strfile转化文件格式

代码语言:javascript
复制
$ strfile -c % myfortunes myfortunes.dat
"myfortunes.dat" created
There were 21 strings
Longest string: 113 bytes
Shortest string: 45 bytes

3. 把原文件和生成的dat文件拷贝到目录,使用中文的话生成一个链接

代码语言:javascript
复制
$ sudo cp myfortunes* /usr/share/games/fortunes/
$ cd /usr/share/games/fortunes/
$ sudo ln -s myfortunes myfortunes.u8
$ ls -l
总用量 408
-rw-r--r-- 1 root root 152666 1月   9  2017 chinese
-rw-r--r-- 1 root root   5716 1月   9  2017 chinese.dat
lrwxrwxrwx 1 root root      7 1月   9  2017 chinese.u8 -> chinese
-rw-r--r-- 1 root root  24516 8月  15  2013 fortunes
-rw-r--r-- 1 root root   1752 8月  15  2013 fortunes.dat
lrwxrwxrwx 1 root root      8 8月  15  2013 fortunes.u8 -> fortunes
-rw-r--r-- 1 root root  53589 8月  15  2013 literature
-rw-r--r-- 1 root root   1076 8月  15  2013 literature.dat
lrwxrwxrwx 1 root root     10 8月  15  2013 literature.u8 -> literature
-rw-r--r-- 1 root root   1416 2月  16 15:38 myfortunes
-rw-r--r-- 1 root root    112 2月  16 15:38 myfortunes.dat
lrwxrwxrwx 1 root root     10 2月  16 12:35 myfortunes.u8 -> myfortunes
-rw-r--r-- 1 root root  20294 8月  15  2013 riddles
-rw-r--r-- 1 root root    540 8月  15  2013 riddles.dat
lrwxrwxrwx 1 root root      7 8月  15  2013 riddles.u8 -> riddles
-rw-r--r-- 1 root root  28673 1月   9  2017 song100
-rw-r--r-- 1 root root    408 1月   9  2017 song100.dat
lrwxrwxrwx 1 root root      7 1月   9  2017 song100.u8 -> song100
-rw-r--r-- 1 root root  88927 1月   9  2017 tang300
-rw-r--r-- 1 root root   1280 1月   9  2017 tang300.dat
lrwxrwxrwx 1 root root      7 1月   9  2017 tang300.u8 -> tang300

4. 测试

因为使用了中文化的fortune-zh,看下是个bash脚本

代码语言:javascript
复制
$ which fortune-zh
/usr/games/fortune-zh

$ cat /usr/games/fortune-zh
#!/bin/sh
# fortune-zh
set -e

FORTUNE="/usr/games/fortune"
[ -x $FORTUNE ] || ( echo "E: Please install package 'fortune-mod'."; false )

# The old version (1.*) of fortune-zh contains only tang300 and song100.
# Note, $\sum_{i} P_i = 1$, i.e. all the possibilities must sum to 1.
#DICT="18% tang300 05% song100 70% chinese %7 myfortunes"
DICT="18% tang300 05% song100 77% chinese"

# check LANG
if [ ! -z $LC_ALL ]; then
  LANG="$LC_ALL"
fi

# output according to LANG
case "$LANG" in
"zh_CN.GB2312")
  LANG=zh_CN.UTF8 $FORTUNE $DICT | iconv -c -f utf8 -t gbk
  ;;
"zh_TW.Big5")
  LANG=zh_TW.UTF8 $FORTUNE $DICT | iconv -c -f utf8 -t big5
  ;;
*)
$FORTUNE $DICT
  ;;
esac

里面执行的命令参数添加自己的文件:

代码语言:javascript
复制
$ /usr/games/fortune 18% tang300 05% song100 2% chinese 75% myfortunes
东武望馀杭。云海天涯两杳茫。何日功成名遂了,还乡。醉笑陪公三万场。--苏轼

$ /usr/games/fortune 18% tang300 05% song100 2% chinese 75% myfortunes

      oo0oo
     o88888o
    88  .  88
   (| - _ - |)
    o\  =  /o
_____/---\______
 佛祖保佑永不死机

修改脚本/usr/games/fortune-zh,改为

代码语言:javascript
复制
DICT="18% tang300 05% song100 50% chinese 27% myfortunes"

文件名前面的百分比是调用频率,越大出镜机会越多。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LINUX开源玩家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档