分享一个shell脚本,实现名人名言的随机显示。
上代码
Shell脚本
#!/usr/bin/env bash
mottoes=(
'心即理也 天下又有心外之事 心外之理乎 - 《传习录》'
'天命之谓性 率性之谓道 修道之谓教 - 《中庸》'
'大学之道 在明明德 在亲民 在止于至善 - 《大学》'
)
index=`od -A n -t d -N 1 /dev/urandom`
let index%=${#mottoes[*]}
echo ${mottoes[$index]}
关于随机数生成
$RANDOM
$RANDOM 返回范围是0 ~ 32767,也就是2^15 - 1,对应的数据类型是有符号16 bit整型的正数部分。
od -A n -t d -N 1 /dev/urandom
od -A n -t d -N 1 /dev/urandom 返回范围是0 ~ 255,也就是2^8 - 1,对应的数据类型是无符号8 bit整型。
关于数组下标
bash下标是从0开始的, zsh下标是从1开始的。
在打开终端时显示
1、保存上面的Shell脚本到本地,如保存到~/script/motto.sh。
2、执行以下命令设置自动执行,注意如果你第1步没有保存到~/script/motto.sh,这里需要要把文件路径修改为你保存的脚本文件路径。
chmod 777 ~/script/motto.sh
echo ~/script/motto.sh >> ~/.bashrc
3、打开终端查看显示效果。
在MacOS状态栏显示
1、安装xbar,下载地址https://github.com/matryer/xbar/releases
2、执行以下命令创建硬链接到xbar的插件文件夹中(这里使用硬链接是方便后面更新脚本的时候只改一个文件)
ln ~/script/motto.sh ~/Library/Application\ Support/xbar/plugins/motto.1h.sh
3、点击xbar的Open plugin菜单,点击左上角的刷新后即可看到我们的脚本,在卡片上还可以设置刷新频率。
4、查看状态栏效果
我的名人名言清单
需要的自取哈
mottoes=(
# 王阳明
'心即理也 天下又有心外之事 心外之理乎'
'圣人之道 吾性自足 向之求理于事物者误也'
'天地虽大 但有一念向善 心存良知 虽凡夫俗子 皆可为圣贤'
'你未看此花时 此花与汝心同归于寂 你来看此花时 则此花颜色一时明白起来 便知此花不在你的心外'
'知之真切笃实处 即是行 行之明觉精察处 即是知'
'私欲日生 如地上尘 一日不扫 便又有一层'
'静处体悟 事上磨炼 省察克治 贵于改过'
'无善无恶心之体 有善有恶意之动 知善知恶是良知 为善去恶是格物'
'世人以落第为耻 吾以落第动心为耻'
'此心不动 随机而动'
'破山中贼易 破心中贼难'
'此心光明 亦复何言'
'志不立,天下无可成之事'
'天命之谓性 率性之谓道 修道之谓教 - 《中庸》'
'道也者 不可须臾离也 可离非道也 是故君子戒慎乎其所不睹 恐惧乎其所不闻 莫见乎隐 莫显乎微 故君子慎其独也 - 《中庸》'
'喜怒哀乐之未发 谓之中 发而皆中节 谓之和 中也者 天下之大本也 和也者 天下之达道也 致中和 天地位焉 万物育焉 - 《中庸》'
'凡事豫则立 不豫则废 言前定 则不跲 事前定 则不困 行前定 则不疚 道前定 则不穷 - 《中庸》'
'行有不得者 皆反求诸己 其身正而天下归之 - 《孟子》'
'万物皆备于我矣 反身而诚 乐莫大焉 强恕而行 求仁莫近焉 - 《孟子》'
'大学之道 在明明德 在亲民 在止于至善 - 《大学》'
'格物 致知 诚意 正心 修身 齐家 治国 平天下 - 《大学》'
'为天地立心 为生民立命 为往圣继绝学 为万世开太平 - 张载'
'吾心便是宇宙 宇宙即是吾心 - 陆九渊'
)