2010-03-03 26 views
8

Quiero hacer el formateo usando echo en el shell scripting.¿Puedo alinear variables en una cadena con echo y bash?

Aquí es un pequeño fragmento de código que me está dando el problema:

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

El $filename es una cadena con longitud variable, y esto está causando un problema con el formato en el terminal. ¿Cómo puedo superar esto?

Esto es lo que quiero decir:

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

Me gustaría tener un formato de tabla cuando lo mostrará en la terminal.

Respuesta

14

Uso printf:

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

Tenga en cuenta que si esta línea es en un bucle, es necesario agregar símbolo de línea nueva "\ n" después de la palabra "Completado", o se imprimirá una sola línea. – CodyChan

Cuestiones relacionadas