Visualizzazione dei risultati da 1 a 6 su 6

Discussione: shell bash

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    170

    shell bash

    salve a tutti ,
    ho un problema che proprio nn riesco a risolvere io vorrei gestire il prompt del bash per colonna e possibile?mi spiego meglio ho uno script che fa delle elaborazioni e vorrei scriverci a fianco la percentuale di progresso ma nn riesco a stamparla sopra quella gia stampata ma me la stampa a fianco
    per capirci
    [ elaborazione ] [ 1%2%3%4%ecc ecc] io vorrei che sostuituisse il valore precedente con quello attuate in modo da visulizzare solo un valore della percentuale
    [elaborazione ] [0%-100%]
    e possibile? spero di essere stato chiaro e grazie a tutti

  2. #2
    codice:
    i=0
    
    while (( 1 ))
    do
       clear
       let i=$i+1
       echo "Elaborazione: $i"
    done

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    170
    grazie mille per la risposta ma io vorrei nn cancellare lo schermo in quanto ho gia a schermo informazioni utili vorrei solo riuscire a a dire alla shella di sovrascrivere il valore ad una certa colonna

  4. #4
    codice:
    i=0
    
    while (( 1 ))
    do
       clear
       let i=$i+1
       echo $Informazioni utili
       echo "Elaborazione: $i"
    done
    Quello che dici te non credo che si possa fare in bash, l'unico modo è pulire lo schermo riscrivendo le informazioni e la percentuale incrementata.

  5. #5
    Secondo me una cosa del genere si può fare in maniera relativamente semplice, forse stampando la linea senza a capo finale ("echo -n 'bla bla'" mi sembra) e ad ogni incremento stampare il nuovo valore preceduto da tanti backspace (di cui non ricordo il codice però ) quanti sono necessari a cancellare il valore vecchio.

    Solo che ora sono su Windows e non posso provare, mi spiace

  6. #6
    Ecco, questo funziona, appena sfornato

    codice:
    i=0
    
    echo -n "Elaborazione:    "
    
    while [ "$i" -lt 100 ]
    do
       let i=$i+1
       if [ "$i" -gt 10 ]; then
           echo -ne "\b\b\b\b"
       elif [ "$i" -gt 0 ]; then
           echo -ne "\b\b\b"
       fi
       echo -n "$i %"
       sleep 0.1
    done
    
    echo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.