• # Revue de code

    Posté par . En réponse au journal Écouter la radio. Évalué à 10.

    ps aux | grep -v grep | grep "mpv"

    Tu peux utiliser pgrep à la place (surtout que tu utilise pkill juste derrière).
    AMHA il y a une coquille tu devrais utiliser $PLAYER à la place de mpv.

    for i in ${sta[@]}; do echo $i; done

    Il y a une astuce super sympa pour ça :

    printf "%s\n" "${sta[@]}"; done

    Pour le paramétrage comme tu utilise bash j'aurais plutôt utilisé un tableau associatif :

    sta[wwoz]="http://wwoz-sc.streamguys.com/wwoz-hi.mp3.m3u"
    sta[fip]="http://audio.scdn.arkena.com/11016/fip-midfi128.mp3"
    #...

    Ça simplifie pas mal ton code en remplaçant :

    stname=$(for i in ${sta[@]}; do echo $i; done | dmenu)
    for ((i=0; i<${#sta[@]}; i++))
    do
     if [ "$stname" = "${sta[$i]}" ]
     then stream=${stau[$i]}
     fi
    done

    Par :

    stname=$(printf "%s\n" "${!sta[@]}" | dmenu)
    stream="${sta[$stname]}"

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)