0

我正在使用 bash 和 gh cli 创建一个表格,用于汇总报告,该报告涉及新创建的问题。我被困在两个问题上:

  1. 我希望该表看起来像一个降价表,同样:
严重性 类型 问题网址

但是,特殊字符不会变成问题正文中的表格。相反,我得到了原始输入。也许是因为我曾经<br>下线?<br>是唯一有效的方法,\n \n\r而其他选项则没有。这是创建的问题的屏幕截图: 在此处输入图像描述 2. 我必须运行多次扫描,我想将每个警报严重性收集到一个组中,并在代码末尾将它们全部附加在一起以提高可读性。我的想法是,通过知道什么是SEVERITY我会将它附加到正确的*_alertsvar 中。我需要帮助使这些行起作用:

"${SEVERITY}_Alerts"="${${SEVERITY}_Alerts} | $SEVERITY | $alertType | URL |<br>"
REPORT="${REPORT}${High_Alerts}${Medium_Alerts}${Low_Alerts}${Informational_Alerts}"

为了更好的背景,这是我到目前为止想出的:

SEVERITY="High"
High_Alerts=''
Medium_Alerts=''
Low_Alerts=''
Informational_Alerts=''
REPORT=$"###Unified zap-scan report ran at $(date) <br><br> | Severity | Type | Issue URL | <br> | ----------- | ----------- | ----------- |<br>"
for ((i = 0; i < ${#BODY[@]}; i++)); do
  line=${BODY[$i]}
  if [[ $line =~ "Alert\nAlert" ]]; then
    line=${line##*#}
    line=${line%%A*}
    SEVERITY=$line
    i=$i+1
    line=${BODY[$i]}
    alertType="${line%%\\*}"
    i=$i+2
    REPORT=$"${REPORT} | $SEVERITY | ${alertType} | URL |<br>"
    #"${SEVERITY}_Alerts"="${${SEVERITY}_Alerts} | $SEVERITY | $alertType | URL |<br>"
  elif [[ $line =~ "\nAlert" ]]; then
    i=$i+1
    line=${BODY[$i]}
    alertType="${line%%\\*}"
    i=$i+2
    REPORT=$"${REPORT} | $SEVERITY | ${alertType} | URL |<br>"
    #"${SEVERITY}_Alerts"="${${SEVERITY}_Alerts} | $SEVERITY | $alertType | URL |<br>"
  fi
done
#REPORT="${REPORT}${High_Alerts}${Medium_Alerts}${Low_Alerts}${Informational_Alerts}"

ps

创建问题的命令完美无缺,问题主体的输入是错误的。

4

1 回答 1

0
  1. 对于表格问题,我将任何更改<br>$'\r\n'相应的。
  2. 使用 GH-CLI 收集信息时,它将以 JSON 形式返回,因此,您需要使用jq它本身来查询和获取值。同样,该值将带有双引号,因此我使用了替换运算符:
  URL=${URL%\"} #remove last double quote
  URL=${URL#\"} #remove first double quote
  1. 正如@Socowi 在评论中提到的,解决数组问题的最佳方法是关联数组。这是一篇非常好的博客文章,对我有帮助

ps

那些双引号破坏了我试图创建的符号链接,所以更好地注意它们

于 2021-06-02T06:17:30.447 回答