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

发表于:2007-07-04来源:作者:点击数: 标签:
一个地址本的脚本,可供学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 FILEN

  一个地址本的脚本,可供学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)
  

原文转自:http://www.ltesting.net