Print loop output on same line dynamically


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Print loop output on same line dynamically
# 1  
Old 05-11-2018
Print loop output on same line dynamically

Hi,

I am trying to print copy percentage completion dynamically by using the script below,

Code:
#!/bin/bash
dest_size=0
orig_size=`du -sk $sourcefile | awk '{print $1}'`
while [ $orig_size -gt $dest_size ] ; do
   dest_size=`du -sk  $destfile | awk '{print $1}'`
coyp_percentage=`echo "scale=2; $dest_size*100/$orig_size" | bc`
echo "$coyp_percentage"
sleep 1
done

From above code am getting completion percentage on newline as below,

Code:
.84
1.97
3.38
8.75
15.81
23.72

But I need the output on same line with space separated dynamically.

Any help on this..

Note: Do i need to use OFS for this?

OS_ver:Sol_11.3x86
shell=bash

TIA
# 2  
Old 05-11-2018
man bash:
Quote:
echo [-neE] [arg ...]
Output the args, separated by spaces, followed by a newline. The return status is always 0. If -n is specified, the trailing newline is suppressed.
# 3  
Old 05-11-2018
Note:
echo -n is not part of the standard and echo -n is not implemented in a standardized way.

For reliable, portable results use printf instead:
Code:
printf "%s " "$var"




--
See:
echo
printf
This User Gave Thanks to Scrutinizer For This Post:
# 4  
Old 05-11-2018
Thanks Scrutinizer ..it's working
# 5  
Old 05-11-2018
A demonstration how bash's builtin echo works in reality
Code:
bash -c 'echo -n hello; uname -sr'
helloSunOS 5.11
bash --posix -c 'echo -n hello; uname -sr'
-n hello
SunOS 5.11
bash -c 'echo -n hello; uname -sr'
helloLinux 4.4.0-122-generic
bash --posix -c 'echo -n hello; uname -sr'
helloLinux 4.4.0-122-generic

This User Gave Thanks to MadeInGermany For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Echo print on same line while loop using variable

Currently using below script but echo it print the output in two line. Input file all-vm-final-2.txt CEALA08893 SDDC_SCUN DS_SIO_Workload_SAPUI_UAT_01 4 CEALA09546 SDDC_SCUN DS-SIO-PD5_Workload_UAT_SP1_Flash_07 4 CEALA09702 SDDC_SCUN DS-VSAN-RMP-WORKLOAD01 4 DEALA08762 SDDC_LDC... (3 Replies)
Discussion started by: ranjancom2000
3 Replies

2. UNIX for Beginners Questions & Answers

Loop through directory and print on line

In the bash below I am trying to loop through all the R1.gz in a directory (always 1), store them in ARRAY, and cut them before the second _. That is being done but I can't seem to print then one a single line seperated by a space. Is the below the best way or is there a better solution? Thank you... (3 Replies)
Discussion started by: cmccabe
3 Replies

3. UNIX for Beginners Questions & Answers

Output to file print as single line, not separate line

example of problem: when I echo "$e" >> /home/cogiz/file.txt result prints to file as:AA BB CC I need it to save to file as this:AA BB CC I know it's probably something really simple but any help would be greatly appreciated. Thank You. Cogiz (7 Replies)
Discussion started by: cogiz
7 Replies

4. Linux

Print line 1 if line 3 matches of the output

Hi I want to extend following command so that on the basis of "Branch: ****" on the third line I can grep and print name of the file on the first line. cat .labellog.emd | grep DA2458A7962276A7E040E50A0DC06459 | cut -d " " -f2 | grep -v branch_name | xargs -I file <command to describe> file ... (1 Reply)
Discussion started by: ezee
1 Replies

5. Shell Programming and Scripting

Print awk output in same line ,For loop

My code is something like below. #/bin/bash for i in `ps -ef | grep pmon | grep -v bash | grep -v grep | grep -v perl | grep -v asm | grep -v MGMT|awk '{print $1" "$8}'` do echo $i ORACLE_SID=`echo $line | awk '{print $2}'` USERNAME=`echo $line | awk '{print $1}'` done ============= But... (3 Replies)
Discussion started by: tapia
3 Replies

6. UNIX for Dummies Questions & Answers

Print each output of loop in new column using awk or shell

I have this output from a loop a11 1,2 3,4 5,6 7,8 12,8 5,4 3,6 a12 10,11 12,13 15,18 20,22 a13 ... (3 Replies)
Discussion started by: maryre89
3 Replies

7. Shell Programming and Scripting

Print for loop variable in output too

Hi, This is my input file cat input chr1:100-200 chr1:220-300 chr1:300-400 Now, I would like to run a program that will take each of the input record for i in `cat input`; do program $i | wc -l;done the output will be something like 10 20 30 But, I would like to print the... (4 Replies)
Discussion started by: jacobs.smith
4 Replies

8. Shell Programming and Scripting

Print in New line in loop

Hi , i want to print the output in line by line while read LINE do echo $LINE | grep UCM | egrep '(Shutdown|Unavailable)' echo $LINE | grep SRBr | egrep '(Shutdown|Unavailable)' echo $LINE | grep SRP| egrep '(Shutdown|Unavailable)' echo $LINE | grep OM | grep JMS|... (7 Replies)
Discussion started by: navsan
7 Replies

9. UNIX for Dummies Questions & Answers

How do i print this output all on the same line?

I have this simple script which gives info on HBA ports. How do i get it all to print on the same line? !#/bin/ksh TMP_INFOFILE=/tmp/tmpfile if ; then rm -f $TMP_INFOFILE touch $TMP_INFOFILE fi PORT_INFOFILE=/tmp/aa if ; then rm -f $PORT_INFOFILE ... (1 Reply)
Discussion started by: rcon1
1 Replies
Login or Register to Ask a Question