前言
在日常工作学习中,我们会经常遇到一些不认识的英语单词,于时我们会打开翻译网站或者翻译软件进行查询,但是大部分工具没有生词本的功能,而有生字本的软件又需要注册登陆,免不了很麻烦,而且自己的数据存放在别人的服务器,免不了会泄漏自己的隐私,并且一旦用了某个软件的生字本,那么可能就只能一直使用它,因为我们不可能同时使用好几个软件来管理我们的生字,这样不便于管理。为了解决上述的这些痛点,于是乎,小编把自己使用的实用shell脚本开发的生字本程序分享给大家,既实用又可以学习linux shell脚本开发知识。
很抱歉,本专栏主要是学习linux shell编程的,所以该程序目前不支持Windows,如果感兴趣的可以参考本代码使用windows cmd进行开发。
生子本的功能概览
jagitch@jagitch-MS-7B93:~$ nw facilitates
facilitates already added
jagitch@jagitch-MS-7B93:~$ sw in
individual
inspired
instant
interoperability
源码
jagitch@jagitch-MS-7B93:~$ cat .newword.sh
WORD_FILE=~/.newword.txt
# 创建文件
if [ ! -f $WORD_FILE ]; then
touch $WORD_FILE
fi
nw(){
if [ -n "$1" ]; then
# 判断是否存在
rgrep "\b$1\b" $WORD_FILE > /dev/null
if [ $? -eq 0 ]; then
echo "$1 already added"
return
fi
echo $1 | tee -a $WORD_FILE
fi
}
sw(){
if [ ! -f $WORD_FILE ]; then
touch $WORD_FILE
return
fi
grep "$1" $WORD_FILE | tac | head -n 10 | sort
if [ ${PIPESTATUS[0]} -ne 0 ]; then
echo "$1 not found"
fi
}
源码解析
-
该脚本将单词保存在一个文本文件中,使用
WORD_FILE
变量设置文件的路径 -
该脚本定义了2个函数,nw (new word)命令的作用是添加一个单词到生字本;sw (search word or show word) 命令查找单词
-
${PIPESTATUS[0]}
获取管道第一个命令的退出代码,可以判断该命令是否执行成功 -
源码比较简单,如果有不懂的地方欢迎评论区留言
安装
-
创建文件,输入上述源码保存
touch ~/.newword.sh
-
在
~/.bashrc
文件末尾添加如下代码source ~/.newword.sh
-
刷新
~/.bashrc
source ~/.bashrc
使用
-
添加生字到单词本
jagitch@jagitch-MS-7B93:~$ nw facilitates facilitates jagitch@jagitch-MS-7B93:~$ nw facilitates facilitates already added
-
在单词本中查找单词
jagitch@jagitch-MS-7B93:~$ sw in individual inspired instant interoperability
-
查找最近添加的单词(最多10个)
jagitch@jagitch-MS-7B93:~$ sw closure facilitates gregorian idempotent individual instant interoperability opportunistically regulate simultaneously
备份
所有单词都保存在WORD_FILE
变量指定的文件中,默认是~/.newword.txt
,定期备份这个文件到移动硬盘或者网盘中即可。