echo on several lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting echo on several lines
# 1  
Old 11-26-2008
Question echo on several lines

Hi there,
I managed to write a script that display its progress like this:
Code:
~# cat myscript
echo -en '     Completed\015'
for (( i=0; i<=100; i++ )) do
    echo -ne $i'%\015'
    # perform some actions
    sleep .01
done
echo
~# myscript
100% Completed
~#

I can't show it on this post, but we visually see the percent growing from 0 to 100.
Now, I'd like to do something trickier. While the percent is still growing gently on line one, I'd like to display some results on the next lines, visually, I want to obtain something like this. For example. I launch a myscript at time T:
Code:
~$ myscript

At T+1 minut:
Code:
~$ myscript
20%  completed
  Action1
  Action2

At T+2 minuts:
Code:
~$ myscript
65%  completed
  Action1
  Action2
  Action3
  Action4

At T+3 minuts:
Code:
~$ myscript
100% completed
  Action1
  Action2
  Action3
  Action4
  Action5
  Action6
~$

Is it possible that my script keep modifying the first line (percentage) while echoing ActionX every once in a while?
Thanks for your help.
Santiago
# 2  
Old 11-26-2008
I dont think so because it cant go to the next action until it completes the first.
# 3  
Old 11-26-2008
Thanks chatwizrd,
Can you be more explicit, I don't really understand you. The point is not to do all the actions together but one after the other. After each action is completed, I want to display a certain percentage on line one.
For example, here is a script named icandothat:
Code:
~# cat icandothat
action1() { echo 'doing action1...'; sleep 3; }
action2() { echo 'doing action2...'; sleep 5; }
action3() { echo 'doing action3...'; sleep 2; }
echo '0%   completed'
action1
echo '30%  completed'
action2
echo '80%  completed'
action3
echo '100% completed'

Here is the result of this script at different times (left) compared to the result of a so called script icannotdothat (right). The script I would like to be able to write is the script on the right.
T=0
Code:
~# icandothat                 ~# icannotdothat
0%   completed                0%   completed
doing action1...              doing action1...

T=3 seconds
Code:
~# icandothat                 ~# icannotdothat
0%   completed                30%  completed
doing action1...              doing action1...
30%  completed                doing action2...
doing action2...

T=8 seconds
Code:
~# icandothat                 ~# icannotdothat
0%   completed                80%  completed
doing action1...              doing action1...
30%  completed                doing action2...
doing action2...              doing action3...
80%  completed
doing action3...

T=10 seconds
Code:
~# icandothat                 ~# icannotdothat
0%   completed                100% completed
doing action1...              doing action1...
30%  completed                doing action2...
doing action2...              doing action3...
80%  completed                ~#
doing action3...
100% completed
~#

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash Script: Echo continuation across many lines

I am writing a bash script that automatically generates a macro program. I want to have an echo on multiple lines and getting an error /home/chaos/instru-correct.sh: line 309: command line is: command not found I am using echo "# The general synopsis of the $mfl" \ ... (2 Replies)
Discussion started by: kristinu
2 Replies

2. Shell Programming and Scripting

Echo printing a line in 2 lines; expected to print in one line

Dear All, fileName: therm.txt nc3h7o2h 7/27/98 thermc 3h 8o 2 0g 300.000 5000.000 1390.000 41 1.47017550e+01 1.71731699e-02-5.91205329e-06 9.21842570e-10-5.36438880e-14 2 -2.99988556e+04-4.93387892e+01 2.34710908e+00 4.34517484e-02-2.65357553e-05 3 ... (7 Replies)
Discussion started by: linuxUser_
7 Replies

3. Shell Programming and Scripting

tcsh - understanding difference between "echo string" and "echo string > /dev/stdout"

I came across and unexpected behavior with redirections in tcsh. I know, csh is not best for redirections, but I'd like to understand what is happening here. I have following script (called out_to_streams.csh): #!/bin/tcsh -f echo Redirected to STDOUT > /dev/stdout echo Redirected to... (2 Replies)
Discussion started by: marcink
2 Replies

4. Shell Programming and Scripting

With that logic this echoes "echo". Question about echo!

echo `echo ` doesn't echoes anything. And it's logic. But echo `echo `echo ` ` does echoes "echo". What's the logic of it? the `echo `echo ` inside of the whole (first) echo, echoes nothing, so the first echo have to echo nothing but echoes "echo" (too much echoing :P):o (2 Replies)
Discussion started by: hakermania
2 Replies

5. Shell Programming and Scripting

Echo print in different lines within email sent by Cron job

Hi all, I think this could have a simple solution, just I canīt get it so far. I have the script below that includes several echo commands in order to show that every part of the script have been executed. A cron job executes this script and when is completed the output is sent by email. ... (4 Replies)
Discussion started by: cgkmal
4 Replies

6. UNIX for Dummies Questions & Answers

echo multiple lines

I have a code: echo "First Line ^M Second Line" | mail -s "Lines" abc@gmail.com Basically, I want to send an email with text in this format: First Line Second Line But there is something wrong with my 'echo'. The ^M is not interpreted as carriage return. Please help. (6 Replies)
Discussion started by: laiko
6 Replies

7. UNIX for Dummies Questions & Answers

How to correctly use an echo inside an echo?

Bit of a weird one i suppose, i want to use an echo inside an echo... For example... i have a script that i want to use to take users input and create another script. Inside this script it creates it also needs to use echos... echo "echo "hello"" >$file echo "echo "goodbye"" >$file ... (3 Replies)
Discussion started by: mokachoka
3 Replies

8. Shell Programming and Scripting

Difference between using "echo" builtin and /bin/echo

So in my shell i execute: { while true; do echo string; sleep 1; done } | read line This waits one second and returns. But { while true; do /bin/echo string; sleep 1; done } | read line continues to run, and doesn't stop until i kill it explicitly. I have tried this in bash as well as zsh,... (2 Replies)
Discussion started by: ulidtko
2 Replies

9. Shell Programming and Scripting

echo a block of lines

echo "line 1" echo "line 2" echo "..." echo "..." echo "line n-1" echo "line n" How can I echo n number of lines with one 'echo' command? (3 Replies)
Discussion started by: girisha
3 Replies

10. UNIX for Dummies Questions & Answers

combine 2 lines (command & echo)

does anyone know how to combine 2 lines? this is what im playing around with. (filename: online, user name: prml0001, real name: primal) #!/bin/sh who | grep $1 > /dev/null if then grep $1 /etc/passwd | cut -f 5, -d : echo is logged on exit 0 else grep $1... (13 Replies)
Discussion started by: primal
13 Replies
Login or Register to Ask a Question