【发布时间】:2022-10-13 18:36:53
【问题描述】:
我有四个摄像头,想将其中任何一个的输出存储在空数组中,并从任何数组成员获取输出代码。
# streams to check
streams=("rtsp://Streaming/Channels/01" "rtsp://Streaming/Channels/201" "rtsp://Streaming/Channels/301" "rtsp://Streaming/Channels/401")
# declare array for stream codes
declare -a outputcodes
for stream in "${streams[@]}"; do
streamoutput=$(timeout 20s ffprobe -v quiet -print_format json -show_streams $stream)
# get output code for each stream
streamresults=$(jq -r '.streams[0].index' <<< "$streamoutput")
# add stream result to array
outputcodes+=$streamresults
done
exit 0
# get first array member result
echo ${outputcodes[0]}
问题是echo ${outputcodes[0]} echo ${outputcodes} 什么也没显示
有什么问题 ?
当我将 echo streamresults 添加到 for 循环时,我得到了正确的结果
0
0
0
0
设置outputcodes+=($streamresults) 没有任何改变
【问题讨论】:
-
请将
declare -p outputcodes的输出添加到您的问题中(此处不做评论)。