shell 智能生成腳本頭部

 描述:

  (1)使用該腳本實現自動生成腳本頭部信息功能(Author、Time、Description…);並且判斷所給名稱參數,若腳本存在就直接打開並移動光標到命令開始位置編輯,若腳本不存在,就新建並打開。

  (2)拓展:給腳本加參數功能,執行時傳遞參數給腳本,使用 -a 後跟 author 值;-d 跟對腳本的描述;-s  跟用戶新建腳本執行時候的shell,並且用戶如果不傳遞shell時候,需要默認shell爲/bin/bash;在腳本寫完後,自動給腳本加上用戶執行權限。

看圖說話:

(1)

 

 (2)代碼段:

  1. #!/bin/bash
  2. #Author: Mo
  3. #Date & Time: 2011-01-14-11:19:20
  4. #Description:
  5. #Version : 1.0.1
  6. #
  7. usag() { 
  8.    echo  "Wrong Option!" 
  9.    echo -e " \033[31m USAG:\033[0m`basename $0` [-a authou] [-d description] [-s shell] scriptname" 
  10.    exit 1 
  11.     } 
  12.  
  13. while getopts ":a:d:s:" SWITCH ; do 
  14.    case $SWITCH in 
  15.     a) 
  16.        AUTHOR=$OPTARG 
  17.        ;; 
  18.     d) 
  19.        DESCRIBE=$OPTARG 
  20.        ;; 
  21.     s) 
  22.        SHELL=$OPTARG 
  23.        ;; 
  24.     \?) 
  25.        usag 
  26.        ;; 
  27.    esac 
  28. done 
  29.  
  30. shift $[OPTIND-1] 
  31. DESH=/bin/bash 
  32.  
  33. if  ! grep '^#!/bin/.*' $1  &>/dev//null ; then 
  34. cat >> $1 << EOF 
  35. #!${SHELL:=$DESH} 
  36. #Author: ${AUTHOR} 
  37. #Date & Time: `date +%F-%T` 
  38. #Description: ${DESCRIBE} 
  39. #Version : 1.0.1 
  40. 
    
  41. EOF 
  42. fi 
  43. vim +7 $1 
  44. wait  
  45. chmod u+x $1 

 

知識:

wait命令:腳本中不加參數使用時,可以等待前面命令全部執行完成後在執行後續命令。

sleep N: 在腳本中,有時會有後一個命令需要前一個命令執行結束的支持,但是若前一個命令執行時間較長,不進行特殊處理,會使前一個命令未正確執行結束後一個命令就執行,從而造成錯誤,可以在兩個命令之間添加該行命令,意思爲暫停N秒後執行下一條命令;以此來避免某些錯誤;

  1. command1  
  2. sleep 10   命令一執行時,暫停10s再執行command2
  3. command2  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章