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
用一个例子来演示会更加清晰
分类:
shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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 其他用户执行命令