当前位置:  技术问答>linux和unix

Shell 电话本

    来源: 互联网  发布时间:2017-02-09

    本文导语:  之前用C写了个电话本,今天上班无聊将此电话本改用shell编写。 #!/bin/sh #Function:indexadddel;Save in file phoneno.txt #Auther:axengine #DATE:201008 #BLOG:WWW.VEIDOO.NET ################index content################ function index { echo "Please input...

之前用C写了个电话本,今天上班无聊将此电话本改用shell编写。

#!/bin/sh
#Function:indexadddel;Save in file phoneno.txt
#Auther:axengine
#DATE:201008
#BLOG:WWW.VEIDOO.NET
################index content################
function index {
echo "Please input the name:"
read name
grep ${name} ./phoneno.txt
name=""
}
################add function#################
function add {
echo "增加信息,请输入姓名:"
read name
while [ -z $name ]
do
echo "姓名不能为空,请重新输入姓名:"
read name
done
echo "增加信息,请输入性别:"
read sex
echo "增加信息,请输入年龄:"
read age
echo "增加信息,请输入电话号码:"
read tellno
while [ -z $tellno ]
do
echo "电话号码不能为空,请重新输入电话号码:"
read tellno
done
echo "增加信息,请输入QQ:"
read QQ
echo "增加信息,请输入E-MAIL:"
read email
echo "增加信息,请输入出生年月:"
read birthday
echo $name | $sex | $age | $tellno | $QQ | $email | $birthday | >> phoneno.txt
if [ $? -ne 0 ]
then
echo "Add errorn"
fi
echo "Add OK!"
}
#######Function modify#################
#Works:Delete the old and insert The New
function modify {
cat phoneno.txt | more
echo "Please chose which your want to modify?Input the name:"
read name
echo "You will modify this content:"
grep ${name} ./phoneno.txt
sed -i -e '/'"$name"'/d' ./phoneno.txt
name=""
echo "Input the New content!"
echo "增加信息,请输入姓名:"
read name
while [ -z $name ]
do
echo "姓名不能为空,请重新输入姓名:"
read name
done
echo "增加信息,请输入性别:"
read sex
echo "增加信息,请输入年龄:"
read age
echo "增加信息,请输入电话号码:"
read tellno
while [ -z $tellno ]
do
echo "电话号码不能为空,请重新输入电话号码:"
read tellno
done
echo "增加信息,请输入QQ:"
read QQ
echo "增加信息,请输入E-MAIL:"
read email
echo "增加信息,请输入出生年月:"
read birthday
echo ${name}|${sex}|${age}|${tellno}|${QQ}|${email}|${birthday}| >> phoneno.txt
if [ $? -ne 0 ]
then
echo "Modify errorn"
fi
echo "Modify OK!"
}
############Delete#######################
function delete {
echo "Which line you want to del?Please input the name:"
read delname
delline=`grep $delname ./phoneno.txt`
sed -i -e '/'"$name"'/d' ./phoneno.txt
if [ $? -ne 0 ]
then
echo "Del error;"
fi
}
##############menu function###################
menu() {
echo "1:查询;"
echo "2:增加;"
echo "3:修改;"
echo "4:删除;"
echo "0:退出;"
echo -n "Input your choice:"
read chose
case $chose in
1) index;;
2) add;;
3) modify;;
4) delete;;
0) exit;;
*) default menu;;
esac
}
########Main{}#####################
if [ -d ./phoneno.txt ]
then
echo "File phoneno.txt doesn't exist"
touch phoneno.txt 
fi
menu



|
if [ -d ./phoneno.txt ]

这句话不好,改改吧。

|
#!/bin/sh
if [ $1 = 'r' ]
then
    name=$2
    awk  'BEGIN{FS=":::"}{if($1 ~ /'$name'/)print $1, $2;}' >phoneno.dat
else
    echo "Useage:phoneno.sh w Name Numbern       phoneno.sh r Name"
fi
无聊俺也来写个,简单得很,主体就是一个awk和echo,但是可以拓展下~

|
if [ $1 = 'r' ]; then awk 'BEGIN{FS=":::"}{if($1 ~ /'$2'/)print $1, $2;}' >phoneno.dat;fi
强制放在一行用法用楼上的楼上

|
echo "增加信息,请输入性别:"
    read sex
    echo "增加信息,请输入年龄:"
    read age
    echo "增加信息,请输入电话号码:"
    read tellno
    while [ -z $tellno ]
    do
        echo "电话号码不能为空,请重新输入电话号码:"
        read tellno
    done
    echo "增加信息,请输入QQ:"
    read QQ
    echo "增加信息,请输入E-MAIL:"
    read email
    echo "增加信息,请输入出生年月:"
    read birthday
    echo $name | $sex | $age | $tellno | $QQ | $email | $birthday | >> phoneno.txt


不知这段代码是否可以写在一个方法里面,方便复用。
开始学了两天的bash shell了,代码基本上看得懂,不过暂时还写不出来。对于junior,是学习shell很不错的范例代码

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 请问“当前shell”和“子shell”的区别?
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?
  • 请问一个shell中如何获取这个shell自身抛出的错误?
  • 非登录shell是什么 意思,和登录shell有什么区别啊
  • Solaris 8中修改root的shell为一个非法的Shell后怎么办?
  • 各位Shell高人,如何取得Shell的第10个入口参数?$10不行啊,急!
  • shell 编程 执行shell新建多个终端 并执行程序
  • 如何在一台机器上的shell中执行另外一台机器上的shell


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3