作為一個運維人員編寫Shell腳本是很平常的,一個格式好的腳本不僅賞心悅目,後期自己和別人也易於維護。 下麵的腳本就是我自己的shell編寫格式,如下: 測試如下: ...
作為一個運維人員編寫Shell腳本是很平常的,一個格式好的腳本不僅賞心悅目,後期自己和別人也易於維護。
下麵的腳本就是我自己的shell編寫格式,如下:
1 [root@mini05 20180930-2]# cat template.sh 2 #!/bin/sh 3 ################ Version Info ################## 4 # Create Date: 2018-09-29 5 # Author: Zhang 6 # Mail: [email protected] 7 # Version: 1.0 8 # Attention: shell腳本模板 9 ################################################ 10 11 # 載入環境變數 12 # 如果腳本放到crontab中執行,會缺少環境變數,所以需要添加以下3行 13 . /etc/profile 14 . ~/.bash_profile 15 . /etc/bashrc 16 17 # 腳本所在目錄即腳本名稱 18 script_dir=$( cd "$( dirname "$0" )" && pwd ) 19 script_name=$(basename ${0}) 20 # 日誌目錄 21 log_dir="${script_dir}/log" 22 [ ! -d ${log_dir} ] && { 23 mkdir -p ${log_dir} 24 } 25 26 errorMsg(){ 27 echo "USAGE:$0 arg1 arg2 arg3" 28 exit 2 29 } 30 31 32 doCode() { 33 echo $1 34 echo $2 35 echo $3 36 } 37 38 main() { 39 if [ $# -ne 3 ];then 40 errorMsg 41 fi 42 doCode "$1" "$2" "$3" 43 } 44 45 # 需要把隱號加上,不然傳入的參數就不能有空格 46 main "$@"
測試如下:
1 [root@mini05 20180930-2]# ./template.sh 2 USAGE:./template.sh arg1 arg2 arg3 3 [root@mini05 20180930-2]# ./template.sh 111 4 USAGE:./template.sh arg1 arg2 arg3 5 [root@mini05 20180930-2]# ./template.sh 111 '222 333' 6 USAGE:./template.sh arg1 arg2 arg3 7 [root@mini05 20180930-2]# ./template.sh 111 '222 333' "444 555" 8 111 9 222 333 10 444 555 11 [root@mini05 20180930-2]# ./template.sh 111 '222 333' "444 555" "666" 12 USAGE:./template.sh arg1 arg2 arg3