地址本的脚本

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航