gpt4 book ai didi

shell - 在 jenkins 管道上提取字符串的一部分

转载 作者:行者123 更新时间:2023-12-04 18:57:02 32 4
gpt4 key购买 nike

我的管道脚本中的语法有问题。

我试图在最后一个正斜杠“/”之后和最后一个句点“。”之前捕获所有内容。在这个字符串中 git@github.com:project/access-server-pd.git (access-server-pd)

Here (下面)是我想如何设置它

MYVAR="git@github.com:project/access-server-pd.git" 

NAME=${MYVAR%.*} # retain the part before the colon
NAME=${NAME##*/} # retain the part after the last slash
echo $NAME

我目前在管道脚本上设置了三重引号:
  stage('Git Clone') {
MYVAR="$GIT_REPO"
echo "$MYVAR"
NAME="""${MYVAR%.*}"""
echo "$NAME"

但是我在“.”上收到了一个意外的标记。错误。我该怎么写才能让它发挥作用?

更新:此命令可以解决问题:
echo "git@github.com:project/access-server-pd.git" | sed 's#.*/\([^.]*\).*#\1#'

现在我只需要找到正确的语法来创建一个变量来存储该值。

最佳答案

在这种情况下,看起来像是在 String 上使用了一些 Groovy/Java 方法。可以提取零件。

final beforeColon = url.substring(0, url.indexOf(':'))  // git@github.com
final afterLastSlash = url.substring(url.lastIndexOf('/') + 1, url.length()) // project/access-server-pd.git

这使用了几种不同的方法:
  • public int String.indexOf(String str, int fromIndex)
  • public String String.substring(int beginIndex, int endIndex)
  • public int String.length()
  • public int String.lastIndexOf(String str)

  • 您确实需要小心您在管道中使用的代码。如果它是沙盒的,它将在 protected 域中运行,其中每个调用都经过安全检查。例如, whitelistScript Security Plugin将上面使用的所有调用列入白名单(例如, method java.lang.String lastIndexOf java.lang.String )。

    表演 String管道代码中的操作是完全合理的,因为您可能会根据它做出决定并更改您的编排。

    关于shell - 在 jenkins 管道上提取字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50029296/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com