使用Shell编写电子词典

  • 代码块

代码块

字典是可以从网上找上传至linux或者直接使用网上词典;

#!/bin/bash
#
#*****************************************************************
#Author:                        King@1208
#QQ:                            #########
#Date:                          2021-10-24
#URL:                           https://blog.csdn.net/weixin_44847002
#FileName:                      dictionary.sh
#Copyright(C):                  2021 All rights reserved
#*****************************************************************
###字典文件地址
BOOK=/project/sh/dictionary.txt
###查找英文
function1 (){read -p  "请输入要查找的英文:" ENGLISH ANSWER_EN=`grep -w "$ENGLISH" $BOOK`ANSWER=`grep -w "$ENGLISH" $BOOK | sed "s/$ENGLISH //p" | head -n 1`   ##取中文释义if [ -n "$ANSWER_EN" ] ;thenecho -e "\033[35m $ENGLISH 的中文意思是:$ANSWER \033[0m"elseecho -e "\033[33m 没有此单词!!\033[0m"fi
}###查找中文
function2 (){read -p  "请输入要查找的中文:" CHINESEAN=`grep  "$CHINESE" $BOOK | egrep -o "[a-z]+ " | wc -l`    ##取出的中文有多少行(数字)if [ $AN -eq 0 ] ;thenecho -e "\033[33m 没有此中文的释义!!\033[0m"elsefor((i=1;i<=$AN;i++));do  ##使用for语句连续打印各个释义的英文TRANS=`grep  "$CHINESE" $BOOK | egrep -o "[a-z]+ " | sed -n "$i p"`  ##取英文CHINESES=`grep  "$CHINESE" $BOOK | egrep -o "[^[:space:]]+" | awk 'NR%2==0' | sed -n "$i p"`  ##取中文echo -e "\033[35m $CHINESES 对应的英文是:$TRANS \033[0m";  done
fi}
###删除单词
function3 (){read -p "要删除的单词:" DELETEDEL=`sed -n "/\<$DELETE\>/=" $BOOK`  ##使用sed匹配的行号(数字)if [ ! $DEL ] ;thenecho -e "\033[33m 没有此单词!!\033[0m"elsesed -i "$DEL"d $BOOK    ##使用sed删除匹配的行内容echo -e  "\033[35m 删除成功!\033[0m"fi
}###添加单词
function4 (){read -p "要添加的单词:" ADDread -p "请输入中文释义:" ADDSWORDS="$ADD $ADDS"echo $WORDS >> $BOOK    ##重定向到字典后面echo -e  "\033[35m 添加成功!\033[0m"
}###修改单词
function5 (){read -p "请输入要修改的单词:" AMENDif [ -n "$AMEND" ] ;thenread -p "请输入修改后的英文和中文(其间请用空格或换行隔开):" AFTERE AFTERCTRANSLATE=`grep  "\<$AMEND\>" $BOOK | sed "s/$AMEND //p" | head -n1`   ##取修改单词的中文sed -i "s/\<$AMEND\>/$AFTERE/g" $BOOK ##修改英文sed -i "s/$TRANSLATE/$AFTERC/g" $BOOK   ##修改中文echo -e "\033[35m 修改成功!\033[0m"elseecho -e "\033[33m 没有此单词,无效修改!!\033[0m"fi
}color1='\033[32m'
###菜单列表打印
echo -e "\033[40;37m 当前词典一共有7986个单词\033[0m"
echo -e "$color1 *************************\033[0m"
echo -e "$color1 |*******1.英译汉********|\033[0m"
echo -e "$color1 |*******2.汉译英********|\033[0m"
echo -e "$color1 |*******3.删除词条******|\033[0m"
echo -e "$color1 |*******4.添加词条******|\033[0m"
echo -e "$color1 |*******5.修改词条******|\033[0m"
echo -e "$color1 |*******6.保存并退出****|\033[0m"
echo -e "$color1 *************************\033[0m"
###实现菜单方式的选择
while true ;do
read -p "请输入序号:" NUM
case $NUM in
1)function1;;
2)function2;;
3)function3;;
4)function4;;
5)function5;;
6)echo -e "\033[34m 欢迎再次使用^_^\n \033]0m"break;;;
*)echo -e "\033[33m ***请输入正确的序号*** \033[0m"
esac
done

Linux使用Shell编写电子词典相关推荐

  1. Linux的shell编写

    -eq //等于 -ne //不等于 -gt //大于 -lt //小于 ge //大于等于 le //小于等于 实验中遇到的问题: 1.NAME=user1 中间不能有空格 2.[ xxx ] xx ...

  2. linux用shell编写猜数字,Shell猜数字游戏

    这篇文章主要为大家详细介绍了 实现猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 本文实例为大家分享了Shell实现猜数字游戏的具体代码,供大家参考,具体内 ...

  3. linux中shell编写数组排序,linux bash shell实现对数组快速排序(升序)

    2011年12月19日,参考网上用C语言实现的快速排序,经过一番修改后,用shell(我的测试环境为centos5的bash-v3.x)实现了相同功能:对数组进行升序排序. 注:如果代码框里的代码复制 ...

  4. 【Linux】Shell 编写case in 语句

    附上自己的小例子 #!/bin/bash # ***** server # # description: run **** server after startup case $1 in     st ...

  5. 关于基于Linux的电子词典的编写

    目录 1:数据库的准备 2:服务器的编写 3:客户端的编写 4:可能出现的问题总结 前言: 电子词典的实现要兼顾注册,登录,查找,查看历史以及退出功能.所以要思考服务端和客户端之间交互(即数据的传送) ...

  6. linux电子词典项目流程,毕业设计_linux下电子词典的设计与实现.doc

    毕业设计_linux下电子词典的设计与实现 毕业设计(论文) 题目:Linux下电子词典的设计与实现 学 生 姓 名 学 号 201022080223 班 级 通信102202H班 所属院(系) 电子 ...

  7. 在linux中运行电子词典,《Linux下电子词典的设计和实现》.doc

    <Linux下电子词典的设计和实现> 毕业设计(论文) 题目:Linux下电子词典的设计与实现 2014 年 11月 20日 大学毕业设计(论文)任务书 学院(直属系):电子信息工程系 时 ...

  8. linux端口扫描脚本ip段,Linux shell编写端口扫描脚本

    Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ...

  9. Linux中shell语法和脚本编写

    Linux中shell语法和脚本编写 原文地址:学习shell的语法,及脚本编写 其它相关辅助资料: 编写shell脚本所需的语法和示例 基础linux指令&简单的shell语法和脚本编写 什 ...

最新文章

  1. mysql tree 修改_13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令
  2. 2011年1月和2月blog汇总:Orchard、敏捷个人、英语
  3. 使用睡袋_在户外一个关乎睡眠的重要因素——睡袋
  4. python列表排序后返回索引排序
  5. OpenNI框架介绍
  6. 算法-- 找到所有数组中消失的数字(Java)
  7. php5.4以下,json_encode不转义实现方法
  8. Multi-thread--C++11中thread的使用
  9. 细说JDK动态代理的实现原理
  10. @Param注解在dao层的使用
  11. Linux学习总结(54)——Red Hat Enterprise Linux与CentOS的区别
  12. Ubuntu 14.10安装SecureCRT 7.3
  13. 20多个Maven命令和选项(备忘单)
  14. java类库查询手册_JAVA类库手册
  15. js中对同步和异步的理解
  16. java链式编程/级联式编程
  17. 供应链优势持续赋能 国美生态圈日趋完善
  18. centos挂载本地镜像作为yum源
  19. 塔防游戏制作教程(二)
  20. 腾讯云服务器修改和重置登录密码图文教程

热门文章

  1. java程序员烂大街了吗?java入坑之前先来看看行情
  2. SUP桨板电动气泵方案——鼎盛合方案
  3. 时间转化为字符串格式的方法
  4. (转)分辨率 PPI DPI概念定义详解
  5. 作为篮球迷,我有一些话想说
  6. 2013-04-26-成都华为实习生招聘上机笔试
  7. uva10006 Carmichael Numbers(卡迈克尔数+素数打表)
  8. div布局系列 - 两端对齐的方法
  9. 杰理之开FM会串linein【篇】
  10. win7“找不到该项目”的错误原因及解决方法