getopts的使用
Posted hixiaowei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了getopts的使用相关的知识,希望对你有一定的参考价值。
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
参考例子: https://www.cnblogs.com/klb561/p/8933992.html
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
以上是关于getopts的使用的主要内容,如果未能解决你的问题,请参考以下文章