• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

地址本的脚本

发布: 2007-7-04 12:06 | 作者: admin | 来源:  网友评论 | 查看: 11次 | 进入软件测试论坛讨论

领测软件测试网
一个地址本的脚本,可供学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 $"\007Usage:\n\t$0 filename"
        exit 1
fi

add(){
echo 
echo -e "\t\tN A M E :\c"
read name
echo
echo -e "\t\tP O S I T I O N :\c"
read position
echo
echo -e "\t\tT E L E P H O N E :\c"
read telephone
echo
echo -e "\t\tE _ M A L E :\c"
read email
echo -e "$name\t\t$position\t\t$telephone\t\t$email" >> $FILENAME
echo
echo -e "\t\tDo 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 "\t\tPlease 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 "\t\tLine Deleted!"
                ;;
                n|N|No|NO)
                echo
                ;;
                *)
                echo -e "\t\tPlease input y|Y|yes|Yes|YES or n|N|No|NO"
                echo
        esac

}
del(){
clear
echo
echo -e "\t------------------------------------"
echo -e "\t|\t1. Del record by Line\t   |"
echo -e "\t|\t2. Del record by Name\t   |"
echo -e "\t|\t3. Del record by Tel \t   |"
echo -e "\t|\t4. Show all record   \t   |"
echo -e "\t|\t5. Exit              \t   |"
echo -e "\t------------------------------------"
echo
echo -e "\t\t Your selection:\c"
read selection
echo
case $selection in
     1)
echo -e "\t\tInput Start_Line_Number:\c"
read line1
echo
echo -e "\t\tInput End_Line_Number:\c"
read line2
echo
echo -e "\t\tLine$line1 to Line$line2 are:"
echo
echo -e "\t姓 名\t\t职 位\t\t 电 话\t\t\t电子邮件"
        echo
sed -n ''$line1','$line2'p' $FILENAME |cat -n
echo
echo -e "\t\tDelete really?[y/n]:\c"
read proceed
proceed $proceed sed ''$line1','$line2'd'
;;
     2)
echo -e "\t\tInput Name:\c"
read name
echo
        echo -e "\t\trecord include $name are:"
        echo
echo -e "\t姓 名\t\t职 位\t\t 电 话\t\t\t电子邮件"
        echo
        grep -w ^$name $FILENAME |cat -n
        echo
        echo -e "\t\tDelete really?[y/n]:\c"
        read proceed
proceed $proceed grep -vw ^$name 
;;
     3)
        echo -e "\t\tInput Telephone:\c"
        read telephone
echo
        echo -e "\t\trecord include $telephone are:"
        echo
echo -e "\t姓 名\t\t职 位\t\t 电 话\t\t\t电子邮件"
echo
        grep -w $telephone $FILENAME |cat -n
        echo
        echo -e "\t\tDelete really?[y/n]:\c"
        read proceed
        proceed $proceed grep -vw $telephone
;;
     4)
echo
show
;;
     5)
echo
main
;;
     *)
clear
del
esac

echo
        echo -e "\t\tDo 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 "\t\tPlease input y|Y|yes|Yes|YES or n|N|No|NO"
        echo
exit 1
esac
      }


show(){
echo
echo -e "\t姓 名\t\t职 位\t\t 电 话\t\t\t电子邮件"
echo
cat -n $FILENAME
echo 
        echo -e "\t\tDo 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 "\t\tPlease input y|Y|yes|Yes|YES or n|N|No|NO"
        echo
        exit 1
esac 
}

main(){
clear
echo
        echo -e "\t--------------------------------"
        echo -e "\t|\t1. Add record \t       |"
        echo -e "\t|\t2. Del record \t       |"
        echo -e "\t|\t3. Show record\t       |"
        echo -e "\t|\t4. Exit       \t       |"
        echo -e "\t--------------------------------"
        echo
        echo -e "\t\t Your selection:\c"
        read selection
        echo

case $selection in
  1)
add
;;
  2)
del
;;
  3)
show
        ;;
  4)
exit 1
;;
  *)
        main
esac
}
main

 tiansgx 回复于:2003-06-27 13:38:52
不错的说,不过用来学shell就有点过于简单了

 .netloafer 回复于:2003-06-27 13:40:22
应该发在shell版。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网