最近在學習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…