2010-03-03 8 views
8

Voglio fare la formattazione usando echo nello script di shell.Posso allineare le variabili in una stringa con echo e bash?

Ecco un piccolo frammento di codice che mi sta dando il problema:

echo -en "\rFileName : $filename : $index of $lines Completed" 

Il $filename è una stringa di lunghezza variabile, e questo sta causando un problema con la formattazione nel terminale. Come posso superare questo?

Ecco cosa intendo:

FileName :  a800_102 : 6 of 6 Completed 
FileName :  ersf_1024 : 56 of 56 Completed 

mi piacerebbe avere un formato di tabella quando lo mostro sul terminale.

risposta

14

Uso printf:

printf "\rFileName : %20s : %8d of %8d Completed" $filename $index $lines 
+0

Nota che se questa linea è in un ciclo for, è necessario aggiungere il simbolo di nuova riga "\ n" dopo la parola "completato", o verrà stampata una sola linea. – CodyChan

Problemi correlati