Unix/Linux shell实用小程序1:生字本

在这里插入图片描述

前言

在日常工作学习中,我们会经常遇到一些不认识的英语单词,于时我们会打开翻译网站或者翻译软件进行查询,但是大部分工具没有生词本的功能,而有生字本的软件又需要注册登陆,免不了很麻烦,而且自己的数据存放在别人的服务器,免不了会泄漏自己的隐私,并且一旦用了某个软件的生字本,那么可能就只能一直使用它,因为我们不可能同时使用好几个软件来管理我们的生字,这样不便于管理。为了解决上述的这些痛点,于是乎,小编把自己使用的实用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
}

源码解析

  1. 该脚本将单词保存在一个文本文件中,使用WORD_FILE变量设置文件的路径

  2. 该脚本定义了2个函数,nw (new word)命令的作用是添加一个单词到生字本;sw (search word or show word) 命令查找单词

  3. ${PIPESTATUS[0]}获取管道第一个命令的退出代码,可以判断该命令是否执行成功

  4. 源码比较简单,如果有不懂的地方欢迎评论区留言

安装

  1. 创建文件,输入上述源码保存

    touch ~/.newword.sh
    
  2. ~/.bashrc文件末尾添加如下代码

    source ~/.newword.sh
    
  3. 刷新~/.bashrc

    source ~/.bashrc
    

使用

  1. 添加生字到单词本

    jagitch@jagitch-MS-7B93:~$ nw facilitates
    facilitates
    jagitch@jagitch-MS-7B93:~$ nw facilitates
    facilitates already added
    
  2. 在单词本中查找单词

    jagitch@jagitch-MS-7B93:~$ sw in
    individual
    inspired
    instant
    interoperability
    
  3. 查找最近添加的单词(最多10个)

    jagitch@jagitch-MS-7B93:~$ sw
    closure
    facilitates
    gregorian
    idempotent
    individual
    instant
    interoperability
    opportunistically
    regulate
    simultaneously
    

备份

所有单词都保存在WORD_FILE变量指定的文件中,默认是~/.newword.txt,定期备份这个文件到移动硬盘或者网盘中即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/774280.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统(CentOS)安装iptables防火墙

1,先检查是否安装了iptables 检查安装文件-执行命令:rpm -qa|grep iptables 检查安装文件-执行命令:service iptables status 2,如果安装了就卸装(iptables-1.4.21-35.el7.x86_64 是上面命令查出来的版本) 执行命令&#xff1a…

---java KMP算法---

对于在一段字符串中查找一段字符串,如果用数组遍历的方法那就效率低下,所以产生了效率更高的KMP算法 KMP算法查只需要遍历一次字符串就可以找出第一次出现的目标字符串 要学的话建议区b站看视频,学着由视频学者比较容易 我这里就提供下我实…

Vue +Echarts 二维数组获取最大值和最小值以及索引

实现图例效果 获取最大值方法&#xff1a; maxSecond(array) {let max Number.MIN_SAFE_INTEGER;for (let i 0; i < array.length; i) {const secondElement parseInt(array[i][1]);if (secondElement > max) {max secondElement;}}return max;}, 获取最大值索引&…

Citrix替换:不只是功能拉齐,更是性能体验的超越

用户在选择Citrix替换方案时&#xff0c;除了关注架构和功能的全面性&#xff0c;也期待着国产桌面办公方案带来的惊喜。 深信服桌面云不仅在基础能力和功能上做到了全面对标Citrix&#xff0c;还在用户极为重视的安全、可靠性、智能监控与排障、信创生态等方面做到了全面超越…

16_更快的速度与精度:Faster R-CNN

回顾R-CNN:链接 回顾Fast R-CNN:链接 1.1 简介 Faster R-CNN是作者Ross Girshick继Fast R-CNN后的又一力作。同样使用VGG16作推理速度在GPU上达到5fps(包括候选区域的生成)&#xff0c;准确率为网络的backbone&#xff0c;也有进一步的提升。在2015年的ILSVRC以及COCO竞赛中…

开放式运动耳机推荐的品牌都有哪些?五款2024靠谱机型推荐!

​作为一位耳机领域的资深数码评测师&#xff0c;我极力推荐开放式耳机作为日常佩戴之选。这款耳机凭借其创新的非入耳设计&#xff0c;有效避免了传统入耳式耳机长时间佩戴导致的耳道不适和感染风险&#xff0c;同时提供了稳固舒适的佩戴体验&#xff0c;特别适合运动爱好者如…

Android network - NUD检测机制(Android 14)

Android network - NUD检测机制 1. 前言2. 源码分析2.1 ClientModeImpl2.2 IpClient2.3 IpReachabilityMonitor 1. 前言 在Android系统中&#xff0c;NUD&#xff08;Neighbor Unreachable Detection&#xff09;指的是网络中的邻居不可达检测机制&#xff0c;它用于检测设备是…

LVS FILTER UNUSED OPTION

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 过滤一些版图与spice网表对不上的器件。 一般后端遇不到这个问题,因为通常是需要写到网表中的decap没有写出来造成的,如下图。

ceph-volume inventory KeyError: ‘TYPE‘ 处理

是否有人跟我一样碰到这样的情况 执行ceph-volume inventory报错 还好有错误日志可以看 [2024-07-05 11:40:40,540][ceph_volume.process][INFO ] Running command: /usr/sbin/blkid -c /dev/null -p /dev/ceph-c5fd6684-3851-49ab-bd44-f6743a79e24f/osd-block-42d41cd1-82…

半导体切割研磨废水的处理技术

半导体切割研磨废水处理是一个复杂而关键的过程&#xff0c;其废水主要来源于切割、研磨等工艺环节&#xff0c;这些过程中使用的化学品、冷却水、洗涤水等会产生含有重金属、有机物、酸碱度不稳定以及高浓度硅化合物等污染物的废水。针对这些废水的特性&#xff0c;半导体行业…

2025深圳国际消费电子展览会

2025深圳国际消费电子展览会 时间&#xff1a;2025年06月25-27日 地点&#xff1a;深圳国际会展中心(新馆) 详询主办方陆先生 I38&#xff08;前三位&#xff09; I82I&#xff08;中间四位&#xff09; 9I72&#xff08;后面四位&#xff09; 展会介绍&#xff1a; 20…

SRC实战:无中生有的接口和参数

今天分享的这个漏洞怎么说呢&#xff0c;虽然也是个高危&#xff0c;但是其实挺简单的&#xff0c;一个很eazy的越权&#xff0c;但是我觉得多多少少还是有点意思吧。 0x00 这是一个移动端的应用程序&#xff0c;前面比较常规&#xff0c;模拟器 BP&#xff0c;跑了一下所有…

你的机器人购物新体验——安全、高效、无忧

如果你跟我一样&#xff0c;对找到那些“恰到好处”的商品充满渴望&#xff0c;那么&#xff0c;让我来告诉你为什么BFT会成为你的下一个购物“心头好”。 BFT的优势 高效安全的支付体系&#xff1a;BFT交易系统保障了交易的安全性和透明性&#xff0c;让你的每一笔消费都安全…

python解析Linux top 系统信息并生成动态图表(pandas和matplotlib)

文章目录 0. 引言1. 功能2.使用步骤3. 程序架构流程图结构图 4. 数据解析模块5. 图表绘制模块6. 主程序入口7. 总结8. 附录完整代码 0. 引言 在性能调优和系统监控中&#xff0c;top 命令是一种重要工具&#xff0c;提供了实时的系统状态信息&#xff0c;如 CPU 使用率、内存使…

我爱服务器——LVM实战学习

后来呀&#xff0c;天亮之前毕业后踏入服务器领域了。。。。。。 LVM&#xff08;Logical Volume Manager&#xff09;是一个高级的磁盘管理框架&#xff0c;它允许用户将多个物理硬盘组合成一个逻辑卷&#xff0c;从而提供更大的存储空间、更高的灵活性和更好的数据管理能力。…

创业新选择:乐财业,让财税事业更简!

在市场需求和国家政策的双重驱动之下&#xff0c;【乐财业智慧财税赋能平台】基于鹦鹉智能财税系统、完善的税务资源供应链&#xff0c;财税专家团等&#xff0c;首创为企业提供“业财税”一体化的一站式财税解决方案&#xff0c;让财税生意更好做。 乐财业通过全国布局线下渠道…

Windows中Git的使用(2024最新版)

Windows中Git的使用 获取ssh keys本地绑定邮箱初始化本地仓库添加到本地缓存区提交到本地缓存区切换本地分支为main关联远程分支推送到GitHub查看推送日志 Git 2020年发布了新的默认分支名称"main"&#xff0c;取代了"master"作为主分支的名称。操作有了些…

MySQL数据库主从复制+mycat读写分离+MHA实操

目录 一、主从复制 1.1 主从复制简介 1.2 MySQL支持的复制类型 1.3 主从复制的工作过程 1.4 主从复制的同步模式 1.4.1 异步复制&#xff08;Asynchronous replication&#xff09; 1.4.2 全同步复制&#xff08;Fully synchronous replication&#xff09; 1.4.3 半同…

React+TS前台项目实战(二十三)-- 基于属性自定义数值显示组件Decimal封装

文章目录 前言Decimal组件1. 功能分析2. 代码详细注释3. 使用方式4. 效果展示 总结 前言 今天要封装的Decimal 组件&#xff0c;是通过传入的属性进行定制化显示数值&#xff0c;在渲染时&#xff0c;会根据不同的情况显示整数部分、小数部分和单位&#xff0c;支持自定义样式…

Go源码--context包

简介 Context 是go语言比较重要的且也是比较复杂的一个结构体&#xff0c;Context主要有两种功能: 取消信号&#xff1a;包括直接取消&#xff08;涉及的结构体&#xff1a;cancelCtx ; 涉及函数&#xff1a;WithCancel&#xff09;和携带截止日期的取消&#xff08;涉及结构…