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
复制代码

 

posted @   littlevigra  阅读(235)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2018-08-20 sudo 其他用户执行命令
点击右上角即可分享
微信分享提示