Shell 电话本

「已注销」 2010-08-14 12:12:34
加精
之前用C写了个电话本,今天上班无聊将此电话本改用shell编写。

#!/bin/sh
#Function:index\add\del;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 error\n"
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 error\n"
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


...全文
3136 75 打赏 收藏 转发到动态 举报
写回复
用AI写文章
75 条回复
切换为时间正序
请发表友善的回复…
发表回复
ll2323001 2012-03-11
  • 打赏
  • 举报
回复
学习下!!不错的
wqing_87 2011-12-27
  • 打赏
  • 举报
回复
最后一段 即使d改成e 也是有问题的
if [ -e ./phoneno.txt ]
then
echo "File phoneno.txt doesn\'t exist"
touch phoneno.txt
fi
menu

e 是看是否存在,如果存在,则为真
那你这段的意思就是 如果文件存在,则重新创建一个文件,如果不存在,就算了。
jimaoguojiang 2011-08-21
  • 打赏
  • 举报
回复
晕,我搞错了。是不能为空,不是不能为错。
jimaoguojiang 2011-08-12
  • 打赏
  • 举报
回复
read name
while [ -z $name ]
do
echo "姓名不能为空,请重新输入姓名:"
read name
done

这是不是有问题: 如果连续的输入两次错误的name, 输入的还是错误的name, 你这好像纠错的功能不完善。
zlh32184 2010-11-15
  • 打赏
  • 举报
回复
很不错...又掌握了一种sh写法了...
yuanzhang198711 2010-08-22
  • 打赏
  • 举报
回复
到时也来个版本,现在观望。
aiaitiantian 2010-08-22
  • 打赏
  • 举报
回复
学习了
gaoxinmutha 2010-08-22
  • 打赏
  • 举报
回复
学习了~
scu_guzo 2010-08-22
  • 打赏
  • 举报
回复
好东西,正需要
xiaoyuer520520 2010-08-20
  • 打赏
  • 举报
回复
厉害啊,学习
wf03369 2010-08-20
  • 打赏
  • 举报
回复
楼主很有才啊 ,谢谢无私奉献
Leo_p 2010-08-20
  • 打赏
  • 举报
回复
这东西有拿出来的必要吗?
「已注销」 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用 62 楼 leo_p 的回复:]

这东西有拿出来的必要吗?
[/Quote]
很简单,没必要
shiyanlove 2010-08-20
  • 打赏
  • 举报
回复
很牛啊,哈哈
wlmjxj 2010-08-19
  • 打赏
  • 举报
回复
好久不用shell了,一时还真不习惯!忙完这一段好好复习一下!
pclizheng 2010-08-19
  • 打赏
  • 举报
回复
回帖是美德
九个太阳2023 2010-08-19
  • 打赏
  • 举报
回复
学习~~~
chf305594431 2010-08-19
  • 打赏
  • 举报
回复
学习学习
OMGlalala 2010-08-19
  • 打赏
  • 举报
回复
学习中。
snn2008 2010-08-19
  • 打赏
  • 举报
回复
高手啊
加载更多回复(42)
1. linux系统管理命令 adduser 功能说明:新增用户帐号。 语  法:adduser 补充说明:在Slackware中,adduser指令是个script程序,利用交谈的方式取得输入的用户帐号资料,然后再交由真正建立帐号的useradd指令建立新用户,如此可方便管理员建立用户帐号。在Red Hat Linux中,adduser指令则是useradd指令的符号连接,两者实际上是同一个指令。 chfn(change finger information) 功能说明:改变finger指令显示的信息。 语  法:chfn [-f <真实姓名>][-h <家中电话>][-o <办公地址>][-p <办公电话>][-uv][帐号名称] 补充说明:chfn指令可用来更改执行finger指令时所显示的信息,这些信息都存放在/etc目录里的asswd文件里。若不指定任何参数,则chfn指令会进入问答式界面。 参  数:  -f<真实姓名>或--full-name<真实姓名>  设置真实姓名。  -h<家中电话>或--home-phone<家中电话>  设置家中的电话号码。  -o<办公地址>或--office<办公地址>  设置办公室的地址。  -p<办公电话>或--office-phone<办公电话>  设置办公室的电话号码。  -u或--help  在线帮助。  -v或-version  显示版本信息。 chsh(change shell) 功能说明:更换登入系统时使用的shell。 语  法:chsh [-luv][-s <shell 名称>][用户名称] 补充说明:每位用户在登入系统时,都会拥有预设的shell环境,这个指令可更改其预设值。若不指定任何参数与用户名称,则chsh会以应答的方式进行设置。 参  数:  -s<shell 名称>或--shell<shell 名称>  更改系统预设的shell环境。  -l或--list-shells  列出目前系统可用的shell清单。  -u或--help  在线帮助。  -v或-version  显示版本信息。

23,127

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧