shell脚本识别JIRA关键

问题描述:

以下线在我詹金斯作业配置执行shell检索JIRA关键shell脚本识别JIRA关键

JIRA_KEY=$(curl --request GET "http://jenkins-server/job/myProject/job/mySubProject/job/myComponent/${BUILD_NUMBER}/api/xml?xpath=/*/changeSet/item/comment" | sed -e "s/<comment>\(.*\)<\/comment>/\1/") 

JIRA_KEY=$(echo $JIRA_KEY | cut -c10-17) 

但在情况下,如果文本不与JIRA键,然后开始按照目前的逻辑,将指派任何文本在10-17范围内。当jira键在<comment>中不存在时,我需要在变量JIRA_KEY中存储空字符串“”,我们该怎么做?

这是我在评论部分中提到,目前尚不清楚你需要的输出,所以基于一些假设,你可以请尝试以下,让我知道在相同的XML

<freeStyleBuild _class="hudson.model.FreeStyleBuild"> 
    <changeSet _class="hudson.plugins.git.GitChangeSetList"> 
     <item _class="hudson.plugins.git.GitChangeSet"> 
      <comment> 
       JRA-1011 This is commit 
       message. 
      </comment> 
     </item> 
    </changeSet> 
</freeStyleBuild> 
+0

不清楚,请你让我们知道什么是预期的输出,我看到你正在试图让人物从10到17,请添加更多的信息代码标签张贴。 – RavinderSingh13

+0

正如在“我需要存储空字符串”一文中提到的,当jira键不在“”中时,变量JIRA_KEY中出现“ –

。 我 - 如果你需要所有的字符串之间,那么你可以运行以下。

awk '/<\/comment>/{a="";next}/<comment>/{a=1;next}a' Input_file 

II-如果你只需要找到JRA字符串,那么你可以做下面的事情。

awk '/<\/comment>/{a="";next}/<comment>/{a=1;next} a && /JRA/{match($0,/[a-zA-Z]+[^ ]*/);print substr($0,RSTART,RLENGTH)}' Input_file 
+0

原始帖子中的代码已经在执行此操作。 –

+0

好的,那么请让我知道你期待的输出是什么? – RavinderSingh13

+0

当jira键不在中时,我需要在变量JIRA_KEY中存储空字符串“” –