número de caracteres restantes em uma variável bash? [fechadas]

0

Como posso, em um script bash, ter uma variável de 300 caracteres que possa ser inserida nela e exibir o número de caracteres restantes, por favor? Nesse caso, os caracteres serão números correspondentes a um feed do get-iplayer, com um máximo de 4 caracteres em um bloco separado do seguinte por um espaço. O roteiro relevante segue -

!#/bin/bash
{
    read -n1 -p "Do you want to download some tv programmes? [y/n/q] " ynq ;
case "$ynq" in 
    [Yy]) echo
  read -n300 -p "Please input the tv programme numbers to download [max 300 characters]  " 'tvbox'
          echo
          cd /media/$USER/back2/proggies/
          /usr/bin/get-iplayer --get $tvbox
          ;;
    [Nn]) echo;;     # moves on to next question in the script
    [Qq]) echo; exit;;            # quits
    * ) echo "Thank you ";;
 esac

};

O que eu estou procurando é uma contagem regressiva de caracteres deixados em 'tvbox', que começa em 300. Os números inseridos variam de 15 a 2000, e serão separados por espaços, mas esses espaços também contarão para o total final. Pode ser feito por favor?

    
por boudiccas 25.01.2014 / 02:28

1 resposta

0

Isso lê um número de programa por vez e fornece uma contagem regressiva do número de caracteres disponíveis:

while true
do
    ((chars_left = 300 -${#tvbox}))
    read -p "Input a program number of up to $chars_left characters or type 'quit' when done: " new_pgm
    [ "$new_pgm" = quit ] && break
    if [ $chars_left -gt ${#new_pgm} ]
    then
        tvbox="$tvbox $new_pgm"
    else
        echo "Sorry.  You are over your character limit."
        break
    fi
done
    
por 25.01.2014 / 03:19

Tags