Como faço para o shell lembrar de coisas?

2

Então o que isso faz (atualmente) é pegar quantas streamers estão ao vivo. Vamos dizer que 2 de 5 são ao vivo, o que funciona bem.

O que eu gostaria de alcançar é que esses dois streamers que estão ao vivo sejam "lembrados" em uma lista sem precisar salvá-los em um documento.

Então, talvez uma variável como $ ListofStreamers e, em seguida, eu poderia usar isso em um diálogo pop-up de tipos para produzir os streamers que estão ao vivo. Existe uma maneira de fazer isso sem criar um arquivo de texto e salvar quem está ao vivo?

Obrigado: 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

Aqui está uma idéia aproximada do que eu quero.

for i in {1..$LiveStreamers}
do
  $Streamer$i
done

zenity --info --text=$Streamer1 $Streamer2 $Streamer3 $Streamer4 $Streamer5

Mas eu quero colocar as streamers que estão em uma única variável como uma lista.

    
por Interknet 10.08.2017 / 22:15

1 resposta

0

Obrigado a @KamilMaciorowski pela resposta para usar arrays. Aqui está o script completo:

    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

Eu explicaria como funciona o array, mas sou um novato para eles. Aqui está a documentação que usei, que é super útil: link

    
por 20.08.2017 / 14:24