我怎样才能让 shell 记住事情?

我怎样才能让 shell 记住事情?

因此,它(目前)的作用是获取有多少个流媒体正在直播。假设 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

相关内容