Linux中Sh腳本的一些總結

從.netcore開源項目來看,eshoponcontainers來說,它的部署是跨平臺的,可以部署在linux,linux上,在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[@]}"do  ????echo?-e?"e[33mWorking?on?$(pwd)/$project"  ????echo?-e?"e[33mtRemoving?old?publish?output"  ????pushd?$(pwd)/$project  ????rm?-rf?obj/Docker/publish  ????echo?-e?"e[33mtRestoring?project"  ????dotnet?restore  ????echo?-e?"e[33mtBuilding?and?publishing?projects"  ????dotnet?publish?-o?obj/Docker/publish  ????popd  done  #?remove?old?docker?images:  images=$(docker?images?--filter=reference="eshop/*"?-q)if?[?-n?"$images"?];?then  ????docker?rm?$(docker?ps?-a?-q)?-f  ????echo?"Deleting?eShop?images?in?local?Docker?repo"  ????echo?$images  ????docker?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.

上面的解決主要體現了發布時用的一些命令,如linux,遍歷,條件語句,linux文件,發布語句等,我自己寫練了練手

declare?-a?arr=(12345)for?i?in?"${arr[@]}"do?if?[?$i?==?2?]  then  ???echo?"a?is?equal?to?2"else  ???echo?"a?is?not?equal?to?2"fi  done  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')for?project?in?"${projectList[@]}"do  ????echo?-e?"e[33m工作在目錄?$(pwd)/$project"  ????echo?-e?"e[33mtRemoving?old?publish?output"done

大家在寫SH文件時要注意,linux與windows的回車符不一樣,我們可以下載notepad++這個工具來進行轉碼。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享