描述:shell
(1)使用該腳本實現自動生成腳本頭部信息功能(Author、Time、Description…);而且判斷所給名稱參數,若腳本存在就直接打開並移動光標到命令開始位置編輯,若腳本不存在,就新建並打開。vim
(2)拓展:給腳本加參數功能,執行時傳遞參數給腳本,使用 -a 後跟 author 值;-d 跟對腳本的描述;-s 跟用戶新建腳本執行時候的shell,而且用戶若是不傳遞shell時候,須要默認shell爲/bin/bash;在腳本寫完後,自動給腳本加上用戶執行權限。bash
看圖說話:ide
(1)spa
(2)代碼段:orm
- #!/bin/bash
- #Author: Mo
- #Date & Time: 2011-01-14-11:19:20
- #Description:
- #Version : 1.0.1
- #
- usag() {
- echo "Wrong Option!"
- echo -e " \033[31m USAG:\033[0m`basename $0` [-a authou] [-d description] [-s shell] scriptname"
- exit 1
- }
- while getopts ":a:d:s:" SWITCH ; do
- case $SWITCH in
- a)
- AUTHOR=$OPTARG
- ;;
- d)
- DESCRIBE=$OPTARG
- ;;
- s)
- SHELL=$OPTARG
- ;;
- \?)
- usag
- ;;
- esac
- done
- shift $[OPTIND-1]
- DESH=/bin/bash
- if ! grep '^#!/bin/.*' $1 &>/dev//null ; then
- cat >> $1 << EOF
- #!${SHELL:=$DESH}
- #Author: ${AUTHOR}
- #Date & Time: `date +%F-%T`
- #Description: ${DESCRIBE}
- #Version : 1.0.1
- EOF
- fi
- vim +7 $1
- wait
- chmod u+x $1
知識:blog
wait命令:腳本中不加參數使用時,能夠等待前面命令所有執行完成後在執行後續命令。ip
sleep N: 在腳本中,有時會有後一個命令須要前一個命令執行結束的支持,可是若前一個命令執行時間較長,不進行特殊處理,會使前一個命令未正確執行結束後一個命令就執行,從而形成錯誤,能夠在兩個命令之間添加該行命令,意思爲暫停N秒後執行下一條命令;以此來避免某些錯誤;get
- command1
- sleep 10 命令一執行時,暫停10s再執行command2
- command2