Tengo lo siguiente en Bash (en Linux)
for dir in Movies/*
do
(cd "$dir" && pwd|cut -d \/ -f5|tr -s '\n' ', ' >> ../../movielist &&
exiftool * -t -s3 -ImageSize -FileType|tr -s '\t' ',' >> ../../movielist )
echo "Movie $movies - $dir ADDED!"
let movies=movies+1
done
Pero deseo que el "eco" muestre el siguiente eco en la siguiente línea (no concatenarlo con la última salida de eco, sino reemplazarlo) para que parezca que se está actualizando. Similar a cómo se mostraría una barra de progreso con porcentaje en la misma línea.
printf a; printf b
salidasab
---printf a\\r; printf b
salidasb
---printf a\\r; sleep 1; printf b
salidasa
, luegob
Si lo he entendido bien, puedes conseguirlo reemplazando tu eco con la siguiente línea:
Aquí hay un pequeño ejemplo que puede ejecutar para comprender su comportamiento:
fuente
K
no es necesario y, de hecho, seEl resto de respuestas son bastante buenas, pero solo quería agregar información adicional en caso de que alguien venga aquí buscando una solución para reemplazar / actualizar un eco multilínea.
Así que me gustaría compartir un ejemplo con todos ustedes. La siguiente secuencia de comandos se probó en un sistema CentOS y usa el comando "timedatectl" que básicamente imprime información detallada de la hora de su sistema.
Decidí usar ese comando ya que su salida contiene varias líneas y funciona perfectamente para el siguiente ejemplo:
Lo anterior imprimirá el resultado de "
timedatectl
" para siempre y reemplazará el eco anterior con resultados actualizados.Debo mencionar que este código es solo un ejemplo, pero tal vez no sea la mejor solución para ti dependiendo de tus necesidades. Un comando similar que haría casi lo mismo (al menos visualmente) es "
watch -n 3 timedatectl
".Pero esa es una historia diferente. :)
¡Espero que ayude!
fuente
Esto es muy útil. Pruébelo y cámbielo según sea necesario.
fuente
Puedes probar esto ... Mi propia versión ...
fuente
Mi forma favorita se llama do the sleep to 50. Aquí la
i
variable debe usarse dentro de las declaraciones de eco.fuente