pubblicato Martedì 19 Settembre del 2006 alle 14:25.

La funzione “usa_printf” è molto utile in quegli script che hanno bisogno di stampare un output più grande di 1kB in quanto ogni finestra creata con zenity non riesce a gestire un maggiore numero di Byte.

La funzione ripartisce l'output in parti non più grandi di 1kB. Printf è un comando in stile funzione print di C, per aver maggiori info dal terminale lanciate il comando: info printf

Sotto sono inserite due versioni della funzione. La prima è la vecchia funzione, invece la seconda è la versione aggiornata.

1)
usa_printf(){ inizio=0 fine=1023 p=1 while echo; do printf "${temp:inizio:fine}" | zenity --text-info \ --title="DimensFiles - parte $p" & inizio=$fine fine=$(( fine+1024 )) if [ ${#temp} -lt $fine ]; then p="ultima" printf "${temp:inizio:fine}" | zenity --text-info \ --title="DimensFiles - parte $p" break fi p=$(( p+1 )) done }

2)
usa_printf(){ inizio=0 fine=1024 p=1 while [ $p != ultima ]; do printf "${temp:inizio:fine}" | zenity --text-info --title="DimensFiles - \ directory: $dir - parte $p" & inizio=$(( inizio+1024 )) fine_ipotetica=$(( inizio+fine )) if [ ${#temp} -lt $fine_ipotetica ]; then p="ultima" printf "${temp:inizio:fine}" | zenity --text-info \ --title="DimensFiles - directory: $dir - parte $p" break fi p=$(( p+1 )) done

[feed] Feed dei commenti [etichetta] Etichette: bash

powered by FreeFind
Il sito è una creazione di Maurizio... ed è pubblicato sotto una Licenza CC; esso non viene aggiornato
in maniera periodica, pertanto non può essere considerato un prodotto editoriale ai sensi della legge n. 62 del 7.03.2001.