Linux shell字符串操作

#!/bin/bash #镜像名
image="asr-server"
#镜像版本
ver="5.2.1"
#容器名
dname="asr" #资源目录配置
if [ $# -eq ] ; then
echo $
rfile=$
else
#资源文件路径
rfile="/mnt/resource/test/server/resources"
fi #日志目录解析
logfile="${rfile%/*}/log"
if [ ! -d $logfile ] ; then
mkdir -p $logfile
fi #环境检测
function check_environment
{
#打印提示信息
echo -e "start check environment ..." #设置最大文件描述符
nfile=`ulimit -n`
#知识点1:屏幕输入写法
if [ $nfile -lt ] ; then
cat >> /etc/security/limits.conf << EOF
* soft nofile
* hard nofile
EOF
fi #校验docker是否安装
docker images > /dev/null >&
if [ $? -ne ];then
echo "Please install docker first ."
exit
fi #打印提示信息
echo -e "check environment successful ." } #备份资源文件
function backup
{
#打印提示信息
echo -e "start backup old resources ..." #校验资源文件是否存在
if [ ! -d $rfile ] ; then
echo "${rfile} not exist ."
exit
fi #按日期备份
file_name=${rfile##*/}
#知识点2:日期相关语法
back_name="/tmp/${file_name}_$(date +%Y%m%d%H).tgz"
#tar主要支持相对路径备份,如果要备份绝对路径需要使用 -P 选项
tar -zcPf ${back_name} ${rfile} #清空资源目录下文件
rm -rf "${rfile}/*" #打印提示信息
echo -e "backup old resources successful ."
} #镜像文件安装
function intasll
{
#打印提示信息
echo -e "start intasll ..." #停止旧容器
container=$(docker ps|grep ${dname} | awk '{print $1}')
for i in $container
do
docker stop $i
docker rm $i
done
#打印提示信息
echo -e "stop old container successful ." #备份资源文件
backup #解压文件到临时目录
tar -zxf ./resources/resources.tgz -C ./tmp #强制拷贝
/usr/bin/cp -rf ./tmp/resources/* ${rfile}/ #清理临时目录
rm -rf ./tmp/* #获取当前镜像版本
cur_image=`docker images | grep ${image} | awk '{print $2}'` #知识点3:注意字符串为空判断 "shell变量" 需要加双引号
if [ -n "$cur_image" ] ; then
for j in $cur_image
do
if [ "$j" = "$ver" ] ; then
echo "${image}:${ver} already exist ."
exit 0
fi
done
fi #安装新镜像
docker load -i "./server/${image}.tar" #启动容器
docker run -p 50053:50053 -v $rfile:/home/asr/resources -v ${logfile}:/opt/asr/log -d --name ${dname} ${image}:${ver} #打印提示信息
echo -e "start docker successful ."
} check_environment
intasll
Linux shell字符串操作的更多相关文章
- linux shell 字符串操作(长度,查找,替换)详解
linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...
- linux shell 字符串操作
转:http://justcoding.iteye.com/blog/1963463 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作 ...
- linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )
在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略 ...
- (正则表达式)linux shell 字符串操作(长度,查找,替换,匹配)详解
在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略 ...
- linux shell 字符串操作详解(获取长度、查找,替换)
在做shell批处理程序时候,常常会涉及到字符串相关操作.有许多命令语句,如:awk,sed都能够做字符串各种操作. 事实上shell内置一系列操作符号,能够达到相似效果,大家知道,使用内部操作符会省 ...
- linux shell 字符串操作(长度,查找,替换)
感谢原创,文章很有帮助. 转自:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 一.判断读取字符串值 表达式 含义 ${v ...
- shell字符串操作详解
shell字符串操作详解的相关资料. 1.shell变量声明的判断 表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...
- Shell字符串操作
@1:子串削除 ${string#substring} 从$string 的开头位置截掉最短匹配的$substring. ${string##substring} 从$string 的开头位置截掉最长 ...
- linux shell字符串内置的常用操作(获取长度、查找、替换)
在编写shell程序时,经常会涉及到字符串相关操作.有许多命令语句,如awk,sed都能够做字符串各种操作. 事实上shell内置一系列操作符号,能够达到相似效果,使用内部操作符会省略启动外部程序等时 ...
随机推荐
- Django 之 ContentType组件
一.什么是 ContentTypes ContentTypes 是 Django 内置的一个应用,它可以追踪记录项目中所有 app 和 model 的对应关系,并记录在 django_content_ ...
- centos 服务器 nginx 负载均衡服务安装
yum -y install gcc gcc-c++ autoconf automake libtool make cmake yum -y install zlib zlib-devel opens ...
- PAT 乙级 1040.有几个PAT C++/Java
题目来源 字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T):第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位( ...
- Chrome出现“浏览器由所属组织管理”如何解决
之前碰到了这个问题,删除注册表解决了.当时没记下来,今天又碰到了.那就写下来以备之后再碰到吧 删除了注册表\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Ch ...
- 项目Alpha冲刺(团队)-博客汇总
格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(团队) 团队名称:为了交项目干杯 作业目标:集中记录所有敏捷冲刺日志的集合 团队信息 队员学号 队员姓名 个人博客地 ...
- python基础知识笔记-集合
集合使用花括号将元素之间用逗号隔开即可.集合的输出里不会出现相同的元素.集合中有并集.交集.差集等,以下为一些简单的表达: def main(): list1=[1,1,2,2,3,3] print( ...
- keller PAA-3XX/80794系列(绝压)压力传感器
一.瑞士 keller(科勒)压力传感器 keller英文版通讯协议百度网盘:提取码:fusc 广播模式:所有从机都会收到上位机信息 Broadcasting This mode of communi ...
- linux环境下nohup的执行jar
java -jar XXX.jar &命令结尾没有 “&” ,则变成 “java -jar XXX.jar ” ,表示在当前ssh窗口,可按CTRL + C打断程序运行,或者直接关闭窗 ...
- 洛谷 P1731 [NOI1999]生日蛋糕 题解
每日一题 day53 打卡 Analysis 观察一个蛋糕的俯视图,上表面的面积其实就是最下面那一层的底面积,所以在第一次搜索的时候加入这个底面积,之后就只用考虑侧面积就好啦. 就是每次枚举r和h,如 ...
- proxysql 学习二 admin-web 启用
proxysql 从1.4.4 开始内置了一个简单的http server,可以方便进行状态信息的查看,今天在 尝试通过配置参数以及update global_variables 没有生效,set 也 ...