簡體   English   中英

帶有變量的bash命令

[英]bash command with variable

我敢肯定,這是一個瘋狂的新手問題。 我需要執行以下命令:

aws s3 sync dist s3://bucket/path --acl public-read --delete --region us-east-1

我想使s3://bucket/path部分動態化。 我有一個環境變量來知道我在哪個git分支上,並且我希望URL依賴於該git分支。

因此,出於本示例的目的,我們假設我有三個分支,每個分支都映射到各自的s3存儲桶:

  • 大師=> s3://master_url.com
  • 分期=> s3://staging_url.com
  • 生產=> s3://production_url.com

假設分支名稱在名為GIT_BRANCH的環境變量中。 如何編寫腳本,以便它確定要使用的URL並使用該URL執行腳本?

您可以執行if-else語句,將變量字符串進行比較(如果需要)。

如果不確定,可以從命令提示符中讀取變量名。 所以你的程序可能是

./myProgram.sh master

並且您將在master中讀入您要檢查的字符串。

這實質上是bash中的switch語句。 可能有一種在bash中顯式使用switch語句的方法,但這是可行的,也是一種很好的做法。

我認為最簡單的方法是在字符串內使用變量: aws s3 sync dist s3://${GIT_BRANCH}/path --acl public-read --delete --region us-east-1

$ {GIT_BRANCH}可能是:

  • master_url.com
  • staing_url.com
  • production_url.com

甚至可以將路徑放在GIT_BRANCH中,但我確實知道您的配置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM