WEB开发网      婵犵數濞€濞佳囧磹婵犳艾鐤炬い鎰堕檮閸嬬喐銇勯弽銊с€掗梻鍕閺岋箑螣娓氼垱笑闂佽姘﹂褔婀佸┑鐘诧工妤犲憡绂嶉崜褏纾奸弶鍫涘妼缁楁岸鏌熷畡鐗堝殗闁诡喒鏅犲畷褰掝敃閵堝棙顔忔繝鐢靛仦閸ㄥ爼骞愰幘顔肩;闁规崘绉ぐ鎺撳亹闁绘垶锕╁Λ鍕⒑閹肩偛濡奸悗娑掓櫇缁顓兼径妯绘櫇闂佹寧绻傞弻濠囨晝閸屾稓鍘甸柣搴㈢⊕閿氶柣蹇ョ稻缁绘繃绻濋崘銊т紝闂佽鍨伴崯鏉戠暦閻旂⒈鏁傞柛鈾€鏅欑槐妯衡攽閻愬樊鍤熷┑顔藉劤铻為柛鏇ㄥ墯閸欏繘鏌嶉崫鍕櫣缂佲偓婢跺绠鹃柟瀛樼箘閿涘秵顨ラ悙顏勭伈闁诡喖缍婂畷鎯邦槻婵℃彃顭烽弻娑㈠Ω閵夈儺鍔夌紓浣稿€哥粔褰掑极閹剧粯鏅搁柨鐕傛嫹 ---闂傚倷鐒︾€笛兠洪埡鍛闁跨噦鎷�
开发学院软件开发Shell 菜鸟学习SHELL第一课---地址本的脚本 阅读

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

 2009-06-30 03:55:00 来源:WEB开发网 闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹闂傚倷绀侀幉锟犲垂閻㈠灚宕查柟鎵閸庡秵銇勯幒鎴濃偓鐢稿磻閹炬枼妲堟繛鍡楃С濞岊亞绱撻崒姘扁枌闁瑰嚖鎷�婵犵數濮幏鍐川椤撴繄鎹曢梻渚€娼уú銈吤洪妸鈺佺劦妞ゆ帊鑳堕埊鏇㈡煏閸モ晛浠х紒杈╁仱閺佹捇鏁撻敓锟�闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹  闂傚倷鑳舵灙缂佺粯顨呴埢宥夊即閵忕姵鐎梺缁樺姈椤愮厧鈽夊Ο閿嬬€婚梺褰掑亰閸撴稑鈻斿鑸碘拺闁告稑饪村▓鏃€绻涚仦鍌氬闁崇粯鎹囬獮瀣攽閹邦剚顔傛俊鐐€栧濠氬储瑜忛幉鎾晸閿燂拷
核心提示:一个地址本的脚本,可供学shell的人参考-------------addr.sh------------#!/bin/bashclear. /etc/rc.d/init.d/functionsarg_count=$#if [ $arg_count -eq 0 ]; thenFILENAME=/tmp/addrelif

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

Tags:菜鸟 学习 SHELL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接