用shell写的一个电话簿

#! /bin/bash #script filename:addbook.bsh #comment:add info to datafile #datafile:conn.dat #initialize the variables DATAFILE="conn.dat" NAME="" PHONE="" ADDRESS="" EMAIL="" #check in argument list then add info to datafile if [ $# -lt 1 ];then echo "Input some info by prompt to add!" echo "NAME:";read NAME echo "PHONE:";read PHONE echo "ADDRESS:";read ADDRESS echo "EMAIL:";read EMAIL else while getopts n:p:a:e OPTION do case $OPTION in n) NAME=$OPTION ;; p) PHONE=$OPTION ;; a) ADDRESS=$OPTION ;; e) EMAIL=$OPTION ;; esac done fi #in the end of file to add then show all info echo "$NAME:$PHONE:$ADDRESS:$EMAIL" >> $DATAFILE . showbook.bsh conn.dat #exit $?  

 

 

#! /bin/bash #script name:deletebook.bsh #comment:this script use delete what you specify field info USAGE="Usage: `basename $0` [field]" MYDATAFILE=$HOME/shell/telephone-book/conn.dat SEARCHFIELD="$1" TMPF1="$PWD/update.$$" TMPF2="$PWD/delete.$$" doclean() { rm -f $TMPF1 $TMPF2 $TMPF1.new 2>/dev/null } failed() { if[ "$1" -ne 0 ];then shift print $@ doclean #is do clean function exit 1 fi } cp $MYDATAFILE $TMPF1 grep -i "$SEARCHFIELD" "$TMPF1" > "$TMPF2" 2>/dev/null failed $? "No matches found" exec 5<"$TMPF2" while read line<&5 do echo "$line" | awk -F: '{ printf "%-10s %s/n%-10s %s/n%-10s %s:/n%-10s %s/n/n",/ "NAME :",$1,"PHONE :",$2,"ADDRESS :",$3,"EMAIL :",$4; }' echo "Do you want delete this line!(y/n)" read flag case $flag in [yY]|[yY][es]) #echo "deleting..." grep -iv "$line" "$TMPF1" > "$TMPF1.new" failed $? "Unable update data" mv "$TMPF1.new" "$TMPF1" failed $? "Unable update data" #echo "finish" ;; *) echo "not delete this line" ;; esac done exec 5<&- mv $MYDATAFILE $MYDATAFILE.bak 2>/dev/null failed $? "Unable update data" mv $TMPF1 $MYDATAFILE 2>/dev/null failed $? "Unable update data" doclean #exit $?  

 

 

#! /bin/bash #script name:showbook.bsh #comment:if $1 is empty will show all else use search field find line and show it. #datafile:conn.dat SEARCHFIELD="$1" MYDATAFILE="$HOME/shell/telephone-book/conn.dat" if [ ! -f "$MYDATAFILE" ];then echo "$MYDATAFILE is not exist or is not a file" >&2 exit 1 fi grep "$SEARCHFIELD" "$MYDATAFILE" | awk -F: '{ printf "%-10s %s/n%-10s %s/n%-10s %s/n%-10s %s/n/n",/ "NAME :",$1,"PHONE :",$2,"ADDRESS :",$3,"EMAIL :",$4; }' #exit $?

 

 

这些脚本不难会点的应该都能看懂

你可能感兴趣的:(用shell写的一个电话簿)