使用 gh cli 创建问题列表

use gh cli to create issues list

我正在尝试从 GitHub 创建一组未解决的问题编号。我正在使用以下命令提取特定回购和标签中所有已打开的问题编号:

issueNumList=$(gh issue list -R <repo name> -l "label" | cut -f1)

问题是我无法从列表中读取 issueNumList(很明显)。 我尝试通过 运行 这个命令将它变成一个数组,但它只得到第一个数字:

IFS=' \n' read -ra issuesArray <<< "${issueNumList[0]}"

我尝试多次更改此命令,但我没有看到输出有任何差异。这是我得到的输出:

$ echo ${issueNumList[0]}
1684 1683 1681 1680 1679 1678 1677 1676 1675 1674 1673 1672 1671 1670 1669 1668 1667
$ echo ${issueNumList[@]}
1684 1683 1681 1680 1679 1678 1677 1676 1675 1674 1673 1672 1671 1670 1669 1668 1667
$ echo "${issueNumList[0]}"
1684
1683
1681
1680
1679
1678
1677
1676
1675
1674
1673
1672
1671
1670
1669
1668
1667
$ echo ${issuesArray[@]}
1684
$ echo ${issuesArray[0]}
1684
$ echo ${issuesArray[1]}

$ echo ${issuesArray[2]}

从这些输出中,我了解到 issueNumListissuesArray 中只有一个位置,从第三个输出中我认为这意味着每个数字的末尾都有 \n .

how to turn the output of the first command into an array?

issueNumList 不是数组 - 在其上使用 [0] 没有意义。

read 一直读到换行符。将分隔符指定为零字节,然后您可以读取换行符分隔的列表。此外 '\n' 是两个字符 \n,它不是换行符,您可以在 $'\n' 中使用 ANSI C 引用来获取换行符。

issueNumList=$(gh issue list -R <repo name> -l "label" | cut -f1)
IFS=$' \n' read -d '' -r -a issuesArray <<<"$issueNumList"

但是将bash中的行读入数组的方式readarray:

readarray -t issuesArray <<<"$issueNumList"

要调试变量内容,请使用 declare -p,例如 declare -p issuesArraydeclare -p issueNumList