热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

菜鸟学习SHELL第一课---地址本的脚本

文章标题:菜鸟学习SHELL第一课---地址本的脚本。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  一个地址本的脚本,可供学shell的人参考
  -------------addr.sh------------
  #!/bin/bash
  clear
  . /etc/rc.d/init.d/functions
  
  arg_count=$#
  if [ $arg_count -eq 0 ]; then
  FILENAME=/tmp/addr
  elif [ $arg_count -eq 1 ]; then
  FILENAME=$1
  else
  echo -e $"07Usage:
  $0 filename"
  exit 1
  fi
  
  add(){
  echo
  echo -e " N A M E :c"
  read name
  echo
  echo -e " P O S I T I O N :c"
  read position
  echo
  echo -e " T E L E P H O N E :c"
  read telephone
  echo
  echo -e " E _ M A L E :c"
  read email
  echo -e "$name $position $telephone $email" >> $FILENAME
  echo
  echo -e " Do you wish to proceed?[y/n]:c"
  read proceed
  echo
  case $proceed in
  y|Y|yes|Yes|YES)
  add
  ;;
  n|N|No|NO)
  clear
  main
  ;;
  *)
  echo -e " Please input y|Y|yes|Yes|YES or n|N|No|NO"
  exit 1
  esac
  }
  proceed(){
  case $1 in
  y|Y|yes|Yes|YES)
  $2 $3 $4 $FILENAME > $FILENAME.tmp
  mv $FILENAME.tmp $FILENAME
  echo
  echo -e " Line Deleted!"
  ;;
  n|N|No|NO)
  echo
  ;;
  *)
  echo -e " Please input y|Y|yes|Yes|YES or n|N|No|NO"
  echo
  esac
  
  }
  del(){
  clear
  echo
  echo -e " ------------------------------------"
  echo -e " | 1. Del record by Line |"
  echo -e " | 2. Del record by Name |"
  echo -e " | 3. Del record by Tel |"
  echo -e " | 4. Show all record |"
  echo -e " | 5. Exit |"
  echo -e " ------------------------------------"
  echo
  echo -e " Your selection:c"
  read selection
  echo
  case $selection in
  1)
  echo -e " Input Start_Line_Number:c"
  read line1
  echo
  echo -e " Input End_Line_Number:c"
  read line2
  echo
  echo -e " Line$line1 to Line$line2 are:"
  echo
  echo -e " 姓 名 职 位 电 话 电子邮件"
  echo
  sed -n ''$line1','$line2'p' $FILENAME |cat -n
  echo
  echo -e " Delete really?[y/n]:c"
  read proceed
  proceed $proceed sed ''$line1','$line2'd'
  ;;
  2)
  echo -e " Input Name:c"
  read name
  echo
  echo -e " record include $name are:"
  echo
  echo -e " 姓 名 职 位 电 话 电子邮件"
  echo
  grep -w ^$name $FILENAME |cat -n
  echo
  echo -e " Delete really?[y/n]:c"
  read proceed
  proceed $proceed grep -vw ^$name
  ;;
  3)
  echo -e " Input Telephone:c"
  read telephone
  echo
  echo -e " record include $telephone are:"
  echo
  echo -e " 姓 名 职 位 电 话 电子邮件"
  echo
  grep -w $telephone $FILENAME |cat -n
  echo
  echo -e " Delete really?[y/n]:c"
  read proceed
  proceed $proceed grep -vw $telephone
  ;;
  4)
  echo
  show
  ;;
  5)
  echo
  main
  ;;
  *)
  clear
  del
  esac
  
  echo
  echo -e " Do you wish to proceed?[y/n]:c"
  read proceed
  echo
  case $proceed in
  y|Y|yes|Yes|YES)
  clear
  del
  ;;
  n|N|No|NO)
  echo
  main
  ;;
  *)
  echo -e " Please input y|Y|yes|Yes|YES or n|N|No|NO"
  echo
  exit 1
  esac
  }
  
  
  show(){
  echo
  echo -e " 姓 名 职 位 电 话 电子邮件"
  echo
  cat -n $FILENAME
  echo
  echo -e " Do you wish to proceed?[y/n]:c"
  read proceed
  echo
  case $proceed in
  y|Y|yes|Yes|YES)
  main
  ;;
  n|N|No|NO)
  echo
  exit 1
  ;;
  *)
  echo -e " Please input y|Y|yes|Yes|YES or n|N|No|NO"
  echo
  exit 1
  esac
  }
  
  main(){
  clear
  echo
  echo -e " --------------------------------"
  echo -e " | 1. Add record |"
  echo -e " | 2. Del record |"
  echo -e " | 3. Show record |"
  echo -e " | 4. Exit |"
  echo -e " --------------------------------"
  echo
  echo -e " Your selection:c"
  read selection
  echo
  
  case $selection in
  1)
  add
  ;;
  2)
  del
  ;;
  3)
  show
  ;;
  4)
  exit 1
  ;;
  *)
  main
  esac
  }
  main  (chinaunix)
  
推荐阅读
  • 多版本CUDA共存与即时切换方案
    本文探讨了在同一台机器上安装并管理多个CUDA版本的方法,以适应不同软件或项目的需求。特别是在使用旧版PyTorch等依赖特定CUDA版本的软件时,该方法尤为实用。 ... [详细]
  • 本文介绍了如何在三台CentOS 7.5虚拟机上通过Docker部署RabbitMQ集群,包括环境准备、容器创建、集群配置及故障处理等内容。 ... [详细]
  • Hexo Next主题部署GitHub Pages时样式不生效的问题及解决方案
    本文探讨了在使用Hexo的Next主题部署个人网站到GitHub Pages过程中遇到的界面样式失效问题,并提供了一种有效的解决方法。主要解决了本地环境与线上环境之间的资源加载差异。 ... [详细]
  • Linux环境下PostgreSQL的安装、配置及日常管理
    本文详细介绍了在Linux环境下安装、配置PostgreSQL数据库的过程,包括环境准备、安装步骤、配置数据库访问以及日常服务管理等方面的内容。适合初学者和有一定经验的数据库管理员参考。 ... [详细]
  • 本文探讨了管道符在Shell编程中的应用,详细解释了它作为进程间通信工具的功能,以及如何利用管道符实现命令间的高效数据传输。 ... [详细]
  • 本文详细介绍如何在树莓派上安装并配置Samba服务,以实现与Windows系统的网络共享兼容性。适合初学者参考。 ... [详细]
  • ANSI最全介绍linux终端字体改变颜色等ANSI转义序列维基百科,自由的百科全书由于国内不能访问wiki而且国内关于ANSI的介绍都是简短的不能达到,不够完整所以转wiki到此 ... [详细]
  • 开发日志:Git连接异常处理
    记录了一次多台开发机(Windows与MacOS)同时出现GitHub SSH连接超时及权限拒绝的问题,并详细描述了解决过程及最终解决方案。 ... [详细]
  • Linux系统中高效解决高Buff/Cache占用问题
    本文详细探讨了在Linux系统中遇到的高Buff/Cache占用问题及其解决方案,提供了手动清除与定时任务自动化处理的方法。 ... [详细]
  • 本文详细介绍了如何在不同操作系统中设置 Node.js 的环境变量,包括通过命令行、npm 脚本以及直接在代码中设置的方法。 ... [详细]
  • 本文介绍了如何通过源码编译和PECL命令来升级Swoole扩展,详细记录了可能遇到的问题及解决方案。 ... [详细]
  • Unix与Linux的起源与发展
    本文详细探讨了Unix与Linux的操作系统起源,从自由软件运动的兴起,到Linux内核的诞生,全面解析了这两款操作系统的发展历程及其对现代计算技术的影响。 ... [详细]
  • 本文介绍了一种有效的方法来监控Web服务器(如Nginx)和数据库服务器(如MySQL)的服务状态,通过端口、进程和服务响应等多种方式确保服务的正常运行。 ... [详细]
  • 四月个人任务:Linux基础操作与网络管理
    本文介绍了两项主要任务:编写一个脚本来检测192.168.1.0/24子网中当前在线的IP地址,以及如何在Linux系统中挂载Windows网络共享目录。通过具体步骤和代码示例,帮助读者理解和掌握相关技能。 ... [详细]
  • 本文详细介绍了如何在Ubuntu操作系统中安装和配置Maven,包括必要的环境准备和验证步骤。 ... [详细]
author-avatar
可可伦-惊叹号
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有