1.getopts的经典例子
isRollback=0
rollbackVer=""
targetGroup=""
actionType=""
isSwitchLoad="1"
while getopts ":r:t:a:s:" opt
do
case $opt in
r ) isRollback=1
rollbackVer=$OPTARG;;
t ) targetGroup=$OPTARG;;
a ) actionType=$OPTARG;;
s ) isSwitchLoad="0";;
? ) echo "Usages: sh deploy_ctl.sh [-t(a1 | a2 | a3 | a4 | c1 | c2 | f1 | f2 | h1 | h2 | m1 | m2)] [-r(versionNum)] [ -a(tomcat | apache | all) ][ -s ]"
exit 1;;
esac
done
if [[ "a1" != "$targetGroup" && "a2" != "$targetGroup" && "a3" != "$targetGroup" && "a4" != "$targetGroup" && "c1" != "$targetGroup" && "c2" != "$targetGroup" && "f1" != "$targetGroup" && "f2" != "$targetGroup" && "h1" != "$targetGroup" && "h2" != "$targetGroup" && "m1" != "$targetGroup" && "m2" != "$targetGroup" && "other1" != "$targetGroup" && "other2" != "$targetGroup" ]]
then
echo -e "\033[41;37m ERROR: ${targetGroup} is a wrong group name !!! \033[0m";
exit 0
fi
if [[ "tomcat" != "$actionType" && "apache" != "$actionType" && "all" != "$actionType" && "restart" != "$actionType" ]]
then
echo -e "\033[41;37m ERROR: ${actionType} is a wrong actionType name !!! \033[0m";
exit 0
fi
2.如果目录不存在,就创建
#!/bin/bash
if [ ! -n "$1" ]
then
echo "Usages: sh enterPath.sh [ filePath ]"
exit 0
fi
dirs=$(echo $1 | tr "/" "\n")
if [ "/"="${dirs}:1:(1-1)" ]
then
cd /
fi
echo the tmp file path is : $1
for dir in $dirs
do
if [ ! -d "${dir}" ]; then
echo creating file: $dir
mkdir ${dir}
fi
cd $dir
done
用一个例子来演示会更加清晰