Skip to main content
added 78 characters in body
Source Link
slm
  • 380k
  • 127
  • 793
  • 897

If I understand what you're asking for I this will do. I'm using the commands ls ~ and tee as stand-ins for ./foo and bar, but the general form of what you want is this:

$ ( time ./foo ) |& bar 

NOTE: The output of time is already being attached at the end of any output from ./foo, it's just being done so on STDERR. To redirect it through the pipe you need to combine STDERR with STDOUT. You can use either |& or 2>&1 to do so.

$ ( time ./foo ) |& bar -or- $ ( time ./foo ) 2>&1 | bar 

Example

$ ( time ls . ) |& tee cmd.log cmd.log file1 file2 file3 file4 file5 real 0m0.005s user 0m0.000s sys 0m0.001s 

And here's the contents of the file cmd.log produced by tee.

$ more cmd.log cmd.log file1 file2 file3 file4 file5 real 0m0.005s user 0m0.000s sys 0m0.001s 

If I understand what you're asking for I this will do. I'm using the commands ls ~ and tee as stand-ins for ./foo and bar.

Example

$ ( time ls . ) |& tee cmd.log cmd.log file1 file2 file3 file4 file5 real 0m0.005s user 0m0.000s sys 0m0.001s 

And here's the contents of the file cmd.log produced by tee.

$ more cmd.log cmd.log file1 file2 file3 file4 file5 real 0m0.005s user 0m0.000s sys 0m0.001s 

If I understand what you're asking for I this will do. I'm using the commands ls ~ and tee as stand-ins for ./foo and bar, but the general form of what you want is this:

$ ( time ./foo ) |& bar 

NOTE: The output of time is already being attached at the end of any output from ./foo, it's just being done so on STDERR. To redirect it through the pipe you need to combine STDERR with STDOUT. You can use either |& or 2>&1 to do so.

$ ( time ./foo ) |& bar -or- $ ( time ./foo ) 2>&1 | bar 

Example

$ ( time ls . ) |& tee cmd.log cmd.log file1 file2 file3 file4 file5 real 0m0.005s user 0m0.000s sys 0m0.001s 

And here's the contents of the file cmd.log produced by tee.

$ more cmd.log cmd.log file1 file2 file3 file4 file5 real 0m0.005s user 0m0.000s sys 0m0.001s 
Source Link
slm
  • 380k
  • 127
  • 793
  • 897

If I understand what you're asking for I this will do. I'm using the commands ls ~ and tee as stand-ins for ./foo and bar.

Example

$ ( time ls . ) |& tee cmd.log cmd.log file1 file2 file3 file4 file5 real 0m0.005s user 0m0.000s sys 0m0.001s 

And here's the contents of the file cmd.log produced by tee.

$ more cmd.log cmd.log file1 file2 file3 file4 file5 real 0m0.005s user 0m0.000s sys 0m0.001s