菜鳥學習SHELL第一課---地址本的指令碼(轉)
菜鳥學習SHELL第一課---地址本的指令碼(轉)[@more@] 一個地址本的指令碼,可供學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
-------------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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-949512/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PJzhang:鳥哥的linux私房菜-shell指令碼-上Linux指令碼
- 簡單的Shell指令碼實戰演練,測試菜鳥也可以輕鬆學會指令碼
- 【菜鳥讀原始碼】halo✍原始碼學習 (一)原始碼
- 菜鳥的資訊保安學習之路
- Linux命令和shell指令碼學習Linux指令碼
- shell指令碼學習筆記-1指令碼筆記
- 【網路安全】Shell 指令碼學習指令碼
- shell和bash指令碼命令學習指令碼
- 菜鳥也想學習JSON解析JSON
- 菜鳥教程python 學習進度Python
- python菜鳥教程學習1:背景性學習Python
- Linux學習之路(三)Shell指令碼初探Linux指令碼
- 【學習】Linux Shell指令碼程式設計Linux指令碼程式設計
- Android菜鳥學習js筆記一AndroidJS筆記
- python菜鳥教程學習9:函式Python函式
- 菜鳥也裝Linux(轉)Linux
- 一個菜鳥管理的學習和思考(一)
- 一個菜鳥管理的學習和思考(二)
- 什麼是shell指令碼?Linux為什麼學習shell?指令碼Linux
- linux學習day3——shell指令碼上Linux指令碼
- linux學習day4——shell指令碼中Linux指令碼
- 設定Linux伺服器IP地址的shell指令碼Linux伺服器指令碼
- JavaScript 非同步及Promise 菜鳥學習心得JavaScript非同步Promise
- linux-鳥哥私房菜學習筆記Linux筆記
- python菜鳥教程學習13:檔案操作Python
- python菜鳥教程學習5: python運算子Python
- 機器學習入門第一課:從高中課本談起機器學習
- 【Linux學習筆記29】shell指令碼基礎Linux筆記指令碼
- 菜鳥做 bomb lab 之第一關
- 跟著菜鳥學pythonPython
- 鳥哥私房菜學習筆記(第零章)筆記
- python菜鳥教程學習3:基礎語法Python
- [轉]寫好shell指令碼的13個技巧指令碼
- Linux“菜鳥”到“菜鳥的一些建議Linux
- 鳥哥的Linux私房菜基礎篇 第十章認識和學習bash這個shellLinux
- shell指令碼程式設計學習筆記-運算子指令碼程式設計筆記
- shell指令碼程式設計學習筆記——變數指令碼程式設計筆記變數
- 【菜鳥筆記|機器學習】神經網路筆記機器學習神經網路
- 菜鳥學習計劃淺談之Linux系統Linux