因此,它(目前)的作用是获取有多少个流媒体正在直播。假设 5 个中 2 个正在直播,这样就没问题了。
我想要实现的是将这 2 位直播主播“记住”在列表中,而无需将其保存到文档中。
因此也许可以使用像 $ListofStreamers 这样的变量,然后我可以在弹出对话框中使用它来输出直播的流媒体。有没有办法做到这一点,而无需创建文本文件并将直播者保存到其中?
感谢:D
for i in {1..5}
do
Streamer=$(awk "NR==$i" $StreamersFile)
Live=$(curl -i --header 'Accept: application/vnd.twitchtv.v3+json' --header "Client-ID: $TwitchAPI" "https://api.twitch.tv/kraken/streams/$Streamer" | grep -wo 'live')
if [ "$Live" == live ]; then \
: $((LiveStreamers++))
fi
done
这是我想要的大致想法。
for i in {1..$LiveStreamers}
do
$Streamer$i
done
zenity --info --text=$Streamer1 $Streamer2 $Streamer3 $Streamer4 $Streamer5
但我想把那些直播的流媒体放入一个像列表一样的变量中。
答案1
谢谢@KamilMaciorowski答案是使用数组。以下是完整的脚本:
for i in {1..6}
do
Streamer=$(awk "NR==$i" $StreamersFile)
Live=$(curl -i --header 'Accept: application/vnd.twitchtv.v3+json' --header "Client-ID: $TwitchAPI" "https://api.twitch.tv/kraken/streams/$Streamer" | grep -wo 'live')
if [ "$Live" == live ]; then \
StreamersThatAreLive=("${StreamersThatAreLive[@]}" "• $Streamer\n");
List=${StreamersThatAreLive[@]}
fi
done
zenity --info --text="Live right now:\n $List" --title="Live Right Now" 2> /dev/null
我会解释数组的工作原理,但我对它们还很陌生。这是我使用的文档,非常有用:http://www.thegeekstuff.com/2010/06/bash-array-tutorial