从.netCore开源项目来看,eShopOnContainers来说,它的部署是跨平台的,可以部署在linux,docker上,在linux上运行它也可以写一些集成的小脚本,这是微信工程师为我们提供一个部署发布方案的SH脚本

#!/bin/bash
declare -a projectList=('../src/Services/Catalog/Catalog.API''../src/Services/Basket/Basket.API''../src/Services/Ordering/Ordering.API''../src/Services/Identity/Identity.API''../src/Web/WebMVC''../src/Web/WebSPA''../src/Web/WebStatus'
)# Build SPA app
# pushd $(pwd)../src/Web/WebSPA
# npm run build:prodfor project in "${projectList[@]}"
doecho -e "\e[33mWorking on $(pwd)/$project"echo -e "\e[33m\tRemoving old publish output"pushd $(pwd)/$projectrm -rf obj/Docker/publishecho -e "\e[33m\tRestoring project"dotnet restoreecho -e "\e[33m\tBuilding and publishing projects"dotnet publish -o obj/Docker/publishpopd
done# remove old docker images:
images=$(docker images --filter=reference="eshop/*" -q)
if [ -n "$images" ]; thendocker rm $(docker ps -a -q) -fecho "Deleting eShop images in local Docker repo"echo $imagesdocker rmi $(docker images --filter=reference="eshop/*" -q) -f
fi# No need to build the images, docker build or docker compose will
# do that using the images and containers defined in the docker-compose.yml file.

上面的解决主要体现了发布时用的一些命令,如数组,遍历,条件语句,删除文件,发布语句等,我自己写练了练手

declare -a arr=(1
2
3
4
5
)
for i in "${arr[@]}"
do
if [ $i == 2 ]
thenecho "a is equal to 2"
elseecho "a is not equal to 2"
fidonedeclare -a projectList=('../src/Services/Catalog/Catalog.API''../src/Services/Basket/Basket.API''../src/Services/Ordering/Ordering.API''../src/Services/Identity/Identity.API''../src/Web/WebMVC''../src/Web/WebSPA''../src/Web/WebStatus'
)for project in "${projectList[@]}"
doecho -e "\e[33m工作在目录 $(pwd)/$project"echo -e "\e[33m\tRemoving old publish output"
done

大家在写SH文件时要注意,linux与windows的回车符不一样,我们可以下载notepad++这个工具来进行转码。

本文转自博客园张占岭(仓储大叔)的博客,原文链接:Linux~Sh脚本一点自己的总结,如需转载请自行联系原博主。

Linux~Sh脚本一点自己的总结相关推荐

  1. linux如何编写.sh脚本,linux sh脚本编写奇刃

    linux sh脚本编写奇刃 发布时间:2020-05-03 来源:脚本之家 点击: 其原理就是当您设定一个控制项的TabIndex为0时,原来TabIndex为0的控制项,TabIndex就变成了1 ...

  2. Linux挖坑脚本,Windows环境下写Linux sh脚本的一次挖坑和填坑

    最近在研究Docker集群和安装的时候,需要准备若干台机器.所以我为节约时间,打算批量复制VM机器,然后用sh脚本命令执行机器名称和IP等基础配置信息的修改. 具体操作:我在windows环境下,用N ...

  3. linux sh脚本 while,Linux shell脚本使用while循环执行ssh的注意事项

    原标题:Linux shell脚本使用while循环执行ssh的注意事项 如果要使用ssh批量登录到其它系统上操作时,我们会采用循环的方式去处理,那么这里存在一个巨大坑,你必须要小心了. 一.场景还原 ...

  4. linux sh 脚本调用外部命令

    参考: http://blog.csdn.net/lhb_blog/article/details/22083649 ----------------------------------------- ...

  5. linux sh脚本循环遍历数组

    linux脚本循环遍历集合 解决方法: 假如要遍历数组oucodes=("100099" "100077") for 数组元素 in ${数组[@]};do d ...

  6. linux sh脚本 -p,“读取-p”在linux shell脚本中做了什么?

    首先,结构< command> – <选项>表示您要执行< command>使用与< option>对应的选项. A – 在命令之后意味着以下字母是一个 ...

  7. linux sh脚本各种数值进制转换(比如10进制转16)若干例子

    #!/bin/bash  echo "执行的文件: $0" echo "第一个参数: $1" echo "第二个参数: $2" echo & ...

  8. linux sh脚本 递增,Linux shell 脚本实现进度框

    #!/bin/bash #dialog usage #dialog --msgbox "This is a test..." 10 30//height width { count ...

  9. 定时每天凌晨一点在linux系统上执行一个autobuild.sh脚本如何实现?

    定时每天凌晨一点在linux系统上执行一个autobuild.sh脚本如何实现? 可以使用linux的计划任务功能crontab来实现定时执行脚本. 具体步骤如下: 编辑crontab计划任务列表: ...

最新文章

  1. 从零到百亿互联网金融架构发展史---架构变迁
  2. 自动去除所有目录的隐藏属性的DOS命令
  3. 产品经理如何通过拆产品,持续提升产品能力?附案例
  4. Firefox 检测到该服务器正在将此地址的请求循环重定向。     此问题可能是因为禁用或拒绝 Cookie 导致。...
  5. JSP+Servlet+C3P0+Mysql实现的azhuo商城
  6. SET XACT_ABORT各种用法及显示结果
  7. 哪里可以免费下SketchUp草图插件?
  8. 【运筹学】CH2 线性规划与单纯形法1——线性规划问题及其数学模型
  9. JAVA是解释型语言还是编译型语言
  10. oracle监听生成trace,监听器控制程序lsnrctl跟踪trace file
  11. 垃圾收集器垃圾回收算法知识图解
  12. Go语言学习笔记【6】 单元测试、Redis基础
  13. dxwebsetup 解决一些dll缺少的问题
  14. 软文营销拒绝一成不变用故事建立情感依恋
  15. 如何入门现代控制理论
  16. ASEMI代理ST/意法STW78N65M5原厂渠道汽车级MOSFET
  17. Tesin移动App测试突破1000万次,成为行业领跑者
  18. java实现简单RPG小游戏的角色创建
  19. qq邮件html样式错乱,QQ浏览器中页面出现莫名错乱原因分析
  20. VSAN 7 安装部署指南(一)

热门文章

  1. MySQL服务启动脚本
  2. 第6章-MapReduce的工作机制-笔记
  3. 在不同域中各个系统拥有自已独立的用户系统时的单点登录问题
  4. ECSHOP让产品浏览历史按照先后进行排序
  5. H5拍照、预览、压缩、上传采坑记录
  6. 如何为 Python 添加远程调试能力而不修改系统代码
  7. JavaMelody应用监控使用指南
  8. 模拟系统照相机图片裁剪的功能
  9. Visual Studio 2013编译Mozilla NPAPI 示例注意事项
  10. php ×××号码效验码生成函数