簡體   English   中英

gitlab ci bash 腳本變量修改

[英]gitlab ci bash script variable modification

在 GitLab CI 腳本中我想

  1. 刪除除數字和點 (.) 以外的任何字符,然后
  2. 如果文本中存在點,則刪除第二個點 [Ex 5.6.7.8 -> 5.6] 之后的所有文本。

So for that I have tried to use sed, but it's not working in GitLab Script (working on bash shell locally)

export BRANCH_NAME={$CI_COMMIT_REF_NAME} | sed 's/\.[^.]*$//'  | sed 's/[^0-9.]//g'

知道這里缺少什么嗎?

如果 sed 在這里不起作用,那么還有其他選擇可以實現同樣的效果嗎?

編輯:根據@WiktorStribiżew - echo "$CI_COMMIT_REF_NAME" | sed 's/.[^.] $//' | sed 's/[^0-9.]//g' - 出口 BRANCH_NAME=${CI_COMMIT_REF_NAME} | sed 's/.[^.] $//' | sed 's/[^0-9.]//g'

回聲工作,但出口不是

使用sed

$ export BRANCH_NAME=$(echo "$CI_COMMIT_REF_NAME" |sed 's/[A-Za-z]*//g;s/\([0-9]*\.[0-9]*\)\.[^ ]*/\1/g')

首先,刪除所有文本,包括您需要的第二個點

sed 's/\([^.]*\.[^.]*\).*/\1/'

sed 's/\.[^.]*$//' sed 命令刪除最后一個點和它后面的任何文本。

接下來,你一定是打錯了,你實際上是想寫${CI_COMMIT_REF_NAME}而不是{$CI_COMMIT_REF_NAME}

所以,你可能會更好

export BRANCH_NAME=$(echo "$CI_COMMIT_REF_NAME" | sed 's/\([^.]*\.[^.]*\).*/\1/' | sed 's/[^0-9.]//g')

暫無
暫無

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

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