#! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。
set set [--abefhkmnptuvxldCHP] [-o option name] [arguments ...]
用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性.在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性,不带任何参数的set命令将显示shell的全部变量.除非遇到非法的选项,否则set总是返回ture
exec
$0叫做位置参数,表示脚本名称;$1才表示脚本的第一个参数,依次类推直到$9。
exec用于执行命令、或脚本、或外部可执行程序,会新建一个shell去执行。
综上,这里exec $0就是执行脚本本身
$0当前Shell程序的文件名
dirname $0,获取当前Shell程序的路径
cd `dirname $0`,进入当前Shell程序的目录
export name
export name = value
export 把变量输出到环境中。
简单介绍一下export的作用:
当Bash shell执行一个程序时,将首先为该程序建立一个新的执行环境,称为子shell。
在Bash Shell中变量都是局部的,它们只在创建它们的子Shell中有意义。
使用export后,变量被设置为全局变量,这时可以被其它子Shell所识别
source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
getopts option_string variable
其中option_string中包含一个有效的单字符选项。若getopts命令在命令行中发现了连字符,那么它将用连字符后面的字符同 option_string相比较。若有匹配,则把变量variable的值设为该选项。若无匹配,则variable设为?。当getopts发现连字符后面没有字符,会返回一个非零的状态值。Shell程序中可以利用getopts的返回值建立一个循环。
local
定义局部变量