我使用的Bash脚本模板

在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)