我有一个脚本,它列出了对API的调用,并将响应代码收集到一个名为updateResponses
的数组中。我看了很多位置并推荐了declare -p
,但是它没有像它描述的那样工作,或者我使用它错了。
我需要的是:从脚本返回数组并通过迭代来验证元素。
我的script.sh
包含此操作的要点:
updateResponses=()
do
..get statusCodes from list of calls in a loop...
updateResponses+=("$statusCode")
done
declare -p updateResponses
在执行此脚本后,在我的终端中,我看到阵列已打印出来,但它不是一个迭代的数组,尽管它看起来好像是重新初始化要使用的。运行echo "${#updateResponses[@]}"
会返回0作为大小。
script.sh
完成运行后的输出示例:
declare -a updateResponses='([0]="200" [1]="200" [2]="200" [3]="200" [4]="200" [5]="200" [6]="200" [7]="200" [8]="200" [9]="200" [10]="200" [11]="200" [12]="200" [13]="200" [14]="200" [15]="200" [16]="200" [17]="200" [18]="200" [19]="200" [20]="200" [21]="200" [22]="200" [23]="200" [24]="200" [25]="200" [26]="200" [27]="200" [28]="200" [29]="200" [30]="200" [31]="200" [32]="200" [33]="200")'
答案 0 :(得分:0)
您需要在当前shell的上下文中运行脚本的输出,例如
$ . <(arr=('a b' 'c d' 'e;f') ; declare -p arr)
$ echo ${arr[1]}
c d