linux 实时写入文件内容,linux shell编程之文件内容写入和日志记录

最近在学习linux的shell编程,由于在初级阶段,所以把平时写的些练习代码记录下来,也和大家共享下,希望和大家day day up,哈哈,这句中国式英语相信读者能明白吧,今天这个代码比前面的2次的稍微长点,功能还是比较简单的,老鸟高手们可以飘过。。。下面是源代码,菜菜们可以和我一起学习看下源代码:

#!/bin/bash

#filename:qqgroup.sh

#QQ;384343423

#world77@163.com

#world77.blog.51cto.com

#****************************

#****************************

#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

#echo "you input QQ_Number is:" $QQ_Number

echo "please input nickname:"

read nickname

while [ -z $nickname ]

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 "************************************"

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

#**************************************************

#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

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

代码不是很长,介绍下功能,第一部分是要求你输入你的QQ号码,昵称和所在地,呵呵,然后检查下是否有member.info这个文件,如果没有,着建立这个文件,然后插入几句话

if [ ! -e member.info ]                                           #如果没有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

# 这句是把上面输入的QQ号码,昵称和所在地写入文件member.info.格式如下

123:effect:shanghai

234:world77:pudong

呵呵,具体你运行下代码就知道了,呵呵,下面介绍下代码的第二部分。

呵呵,看看代码的第二部分,个人觉得有点变态了,哈哈。

第二部分代码先检查下是否有LOG这个文件夹,如果没有,则创建下LOG文件夹,接着进入这个目录,新建个目录,是以年月日为名。命令如下:

if [ ! -d log ]                                        #判断是否有log这个目录,没有则创建

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

哈哈,上面的代码还是比较容易的,如果不明白的话,运行下代码就可以明白了,你可以更改下日期,然后你在运行下代码,看下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

如果哪位知道如何解决的话,告诉下,不胜感谢,呵呵。。。

程序如果有问题,欢迎指出,我的联系方式脚本里都有的,希望和大家DAY DAY UP...

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值