一個地址本的腳本,可供學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 yYyesYesYES) add ;; nNNoNO) clear main ;; *) echo -e " Please input yYyesYesYES or nNNoNO" exit 1 esac } proceed(){ case $1 in yYyesYesYES) $2 $3 $4 $FILENAME > $FILENAME.tmp mv $FILENAME.tmp $FILENAME echo echo -e " Line Deleted!" ;; nNNoNO) echo ;; *) echo -e " Please input yYyesYesYES or nNNoNO" 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 yYyesYesYES) clear del ;; nNNoNO) echo main ;; *) echo -e " Please input yYyesYesYES or nNNoNO" 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 yYyesYesYES) main ;; nNNoNO) echo exit 1 ;; *) echo -e " Please input yYyesYesYES or nNNoNO" 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)