Each escape sequence starts with a 0x1B (escape) character followed usually by [ and then one or more commands using letters or numbers. echo "Pulling zulu-jdk-15 ... downloading" && \ echo "Pulling zulu-jdk-11 ... downloading" && \ echo "Pulling zulu-jdk-8 ... downloading" && \ sleep 2 && \ echo -e "\e[2A\e[24C\e[32mdone\e[0m\e[K" && \ sleep 1 && \ echo -e "\e[24C\e[32mdone\e[0m\e[K" && \ sleep 1 && \ echo -e "\e[3A\e[24C\e[32mdone\e[0m\e[K " ] [ 0.671883 , "o" , " \u 001b[1A \u 001b[2K \r Pulling zulu-jdk-8 ... pulling from azul/zulu-openjdk \r\u 001b[1B" ] [ 0.672048 , "o" , " \u 001b[1A \u 001b[2K \r Pulling zulu-jdk-8 ... digest: sha256:13d16ca0335fbe1df3... \r\u 001b[1B" ] [ 0.672159 , "o" , " \u 001b[1A \u 001b[2K \r Pulling zulu-jdk-8 ... status: image is up to date for a...