最近在学习linux的shell编程,由于在初级阶段,所以把平时写的些练习代码记录下来,也和大家共享下,希望和大家day day up,哈哈,这句中国式英语相信读者能明白吧,今天这个代码比前面的2次的稍微长点,功能还是比较简单的,老鸟高手们可以飘过。。。下面是源代码,菜菜们可以和我一起学习看下源代码:
#****************************
#****************************
#this chapter is input QQ member's base information
#QQ_Number nickname local
#***************************
echo "please input QQ number:"
read QQ_Number
#****************************
#this chapter is input QQ member's base information
#QQ_Number nickname local
#***************************
echo "please input QQ number:"
read QQ_Number
while [ -z $QQ_Number ]
do
echo "you input null,please input you QQ_Number!"
read QQ_Number
done
do
echo "you input null,please input you QQ_Number!"
read QQ_Number
done
#echo "you input QQ_Number is:" $QQ_Number
echo "please input nickname:"
read nickname
read nickname
while [ -z $nickname ]
do
echo "you input null,please input you nickname!"
read nickname
done
do
echo "you input null,please input you nickname!"
read nickname
done
#echo "you input nickname is :"$nickname
echo "please input you local:"
while [ -z $local ]
do
echo "you input null,please input you local!"
read local
done
#echo "you input local is:" $local
echo "************************************"
echo "************************************"
do
echo "you input null,please input you local!"
read local
done
#echo "you input local is:" $local
echo "************************************"
echo "************************************"
echo "you input QQ_Number is :"$QQ_Number
echo "you input nickname is :"$nickname
echo "you input local is :"$local
if [ ! -e member.info ]
then
touch member.info
echo "----------create member information file success----------" > member.info
echo $(date +%Y"."%m"."%d" "%k":"%M":"%S) >> member.info
echo "this file is record member's information" >> member.info
fi
echo $QQ_Number":"$nickname":"$local >>member.info
echo $(date +%Y"."%m"."%d" "%k":"%M":"%S) >> member.info
echo "this file is record member's information" >> member.info
fi
echo $QQ_Number":"$nickname":"$local >>member.info
#**************************************************
#this chapter is about build log file to record operation information
log_file=$(date +%Y%m%d)/$(date +%Y%m%d%H%M%S)
if [ ! -d log ]
then
mkdir log
fi
then
mkdir log
fi
if [ -d log ]
then
# mkdir log
cd log
if [ ! -d $(date +%Y%m%d) ]
then
mkdir $(date +%Y%m%d)
fi
touch $log_file
echo $(date +%Y"."%m"."%d" "%k":"%M":"%S) >> $log_file
echo "----------create log file success--------------" >> $log_file
echo "you input QQ_Number,nickname,local into member information is :"$QQ_Number":"$nickname":"$local >> $log_file
fi
then
# mkdir log
cd log
if [ ! -d $(date +%Y%m%d) ]
then
mkdir $(date +%Y%m%d)
fi
touch $log_file
echo $(date +%Y"."%m"."%d" "%k":"%M":"%S) >> $log_file
echo "----------create log file success--------------" >> $log_file
echo "you input QQ_Number,nickname,local into member information is :"$QQ_Number":"$nickname":"$local >> $log_file
fi
代码不是很长,介绍下功能,第一部分是要求你输入你的QQ号码,昵称和所在地,呵呵,然后检查下是否有member.info这个文件,如果没有,着建立这个文件,然后插入几句话
if [ ! -e member.info ] #如果没有member.info这个文件
then
touch member.info #如果没有则新建文件
then
touch member.info #如果没有则新建文件
echo "----------create member information file success----------" > member.info
echo $(date +%Y"."%m"."%d" "%k":"%M":"%S) >> member.info
echo "this file is record member's information" >> member.info
fi #以上三句是初始化新建文件时候追加的话,记下创建的时间。
echo $QQ_Number":"$nickname":"$local >>member.info
echo $(date +%Y"."%m"."%d" "%k":"%M":"%S) >> member.info
echo "this file is record member's information" >> member.info
fi #以上三句是初始化新建文件时候追加的话,记下创建的时间。
echo $QQ_Number":"$nickname":"$local >>member.info
# 这句是把上面输入的QQ号码,昵称和所在地写入文件member.info.格式如下
123:effect:shanghai
234:world77:pudong
呵呵,具体你运行下代码就知道了,呵呵,下面介绍下代码的第二部分。
呵呵,看看代码的第二部分,个人觉得有点变态了,哈哈。
第二部分代码先检查下是否有LOG这个文件夹,如果没有,则创建下LOG文件夹,接着进入这个目录,新建个目录,是以年月日为名。命令如下:
if [ ! -d log ] #判断是否有log这个目录,没有则创建
then
mkdir log
fi
then
mkdir log
fi
if [ -d log ] #如果有这个目录,进入LOG
then
# mkdir log
cd log #判断是否有今天的目录(以年月日为名)
if [ ! -d $(date +%Y%m%d) ]
then
mkdir $(date +%Y%m%d) #创建目录,以年月日为名
fi
then
# mkdir log
cd log #判断是否有今天的目录(以年月日为名)
if [ ! -d $(date +%Y%m%d) ]
then
mkdir $(date +%Y%m%d) #创建目录,以年月日为名
fi
哈哈,上面的代码还是比较容易的,如果不明白的话,运行下代码就可以明白了,你可以更改下日期,然后你在运行下代码,看下LOG里面是否有变化,你就明白代码的含义了,呵呵,本人的表达能力实在有限,读者千万包涵,哈哈。。。
如果到此为止,也不算变态,变态的还在后面,由于我是想用来做日志的功能,所以在log目录下,以日期新建了目录后,在这个目录下,我会以年月日时分秒的格式为文件名,记录下每次运行这个脚本的操作,即你可以到在这个日志文件里面看到你输入的信息,哈哈。有点变态吧,每次输入都能看到,想看具体效果,运行下代码就知道了,哈哈。。。
这个脚本还有很多地方需要改进,比如对输入的判断和长度的限制等,等我有时间了,功力提高了,会后续改进,并继续和大家分享。。。
注:由于本人的基础不是很好,在以root身份运行代码的时候,没有任何问题,在以普通用户运行这个脚本的时候,出现了权限问题,所以不能运行,所以大家需要注意下,运行时要以ROOT的身份,呵呵。。。
下面贴下运行的权限问题时的报错如下:
[root@localhost shell]# su joe
[joe@localhost shell]$ sh qqgroup.sh
please input QQ number:
789
please input nickname:
kdsjf
please input you local:
you input null,please input you local!
skdfj
************************************
************************************
you input QQ_Number is :789
you input nickname is :kdsjf
you input local is :skdfj
touch: cannot touch `member.info': Permission denied
qqgroup.sh: line 52: member.info: No such file or directory
qqgroup.sh: line 53: member.info: No such file or directory
qqgroup.sh: line 54: member.info: No such file or directory
qqgroup.sh: line 56: member.info: No such file or directory
mkdir: cannot create directory `log': Permission denied
[joe@localhost shell]$ sh qqgroup.sh
please input QQ number:
789
please input nickname:
kdsjf
please input you local:
you input null,please input you local!
skdfj
************************************
************************************
you input QQ_Number is :789
you input nickname is :kdsjf
you input local is :skdfj
touch: cannot touch `member.info': Permission denied
qqgroup.sh: line 52: member.info: No such file or directory
qqgroup.sh: line 53: member.info: No such file or directory
qqgroup.sh: line 54: member.info: No such file or directory
qqgroup.sh: line 56: member.info: No such file or directory
mkdir: cannot create directory `log': Permission denied
如果哪位知道如何解决的话,告诉下,不胜感谢,呵呵。。。
程序如果有问题,欢迎指出,我的联系方式脚本里都有的,希望和大家DAY DAY UP...
附件:http://down.51cto.com/data/2354563
本文转自你是路人甲还是霍元甲博客51CTO博客,原文链接http://blog.51cto.com/world77/231115如需转载请自行联系原作者
world77