2

Итак, что это делает (в настоящее время), так это захватывает количество живых стримеров. Допустим, 2 из 5 являются живыми, что отлично работает.

Чего я хотел бы добиться, так это того, чтобы эти две растяжки действовали так, чтобы их "запоминали" в списке без необходимости сохранять их в документе.

Так что, возможно, переменная, такая как $ ListofStreamers, и затем я мог бы использовать ее во всплывающем диалоге, чтобы вывести живые стримеры. Есть ли способ сделать это без создания текстового файла и сохранения того, кто ему жив?

Спасибо

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 ответ1

0

Спасибо @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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .