码迷,mamicode.com
首页 > 其他好文 > 详细

我使用的Bash脚本模板

时间:2015-06-16 22:35:52      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

在Linux环境下(包括在相应的模拟环境,如Windows中的Cygwin)工作的时间久了,就会慢慢积累出一些自己写的小脚本程序,用于加速日常的操作与工作流程,如自动挂载与卸载U盘,映射网络驱动器,数据备份与恢复等。为了能让这些脚本程序在帮助文档、信息提示、命令行参数等方面的风格保持统一,就需要设计制作一个模板。基本的思路如下:

  1. 制作一个display_help函数。当脚本加上-h参数运行时,调用该函数以显示该脚本程序的基本用法,说明文档与使用范例。
  2. 能够处理单字符的命令行参数。
  3. 针对不同的操作系统与主机名进行相应的操作。这样,就可以保证同一个脚本以不同的方式在自己的多个电脑上运行。例如,自己编写了基于rsync的文件同步脚本程序,实现了三台电脑之间的相互同步与备份。
  4. 脚本运行过程中的提示、警告、错误信息以不同的字符串前缀标识,使人更容易识别。

根据上述考虑,制作出的脚本模板如下:

#!/bin/bash

script_name=""
script_usage=$(cat <<EOF
Description of script usage.
EOF
)
script_function=$(cat <<EOF
Description of script function.
EOF
)
script_doc=$(cat <<EOF
Script documentation.
-h     Display this help.
EOF
)
script_examples=$(cat <<EOF
Script examples.
EOF
)
state_prefix="==="
warning_prefix="***"
error_prefix="!!!"

function display_help() {
    if [ -n "$script_usage" ]; then
    echo -e "Usage: $script_usage"
    fi
    
    if [ -n "$script_function" ]; then
    echo -e "$script_function"
    fi
    
    if [ -n "$script_doc" ] ; then
    echo -e "\n$script_doc"
    fi
    
    if [ -n "$script_examples" ]; then
    echo -e "\nExamples"
    echo -e "$script_examples"
    fi
}

# Process command options
while getopts ":h" opt; do
    case $opt in
    h  )  display_help
        exit 0 ;;
    \? )  display_help
        exit 1 ;;
    esac
done
shift $(($OPTIND - 1))

# Start execute the command
if [ $OSTYPE = cygwin‘ ] && [ `hostname` = "xxx" ]; then
    exit 0
fi

if [ $OSTYPE = linux-gnu‘ ] && [ `hostname` = "xxx" ]; then
    exit 0
fi

echo "$warning_prefix Operating system or host name is not supported!"

 

我使用的Bash脚本模板

标签:

原文地址:http://www.cnblogs.com/quantumman/p/4581786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!