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  

 

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