10 More Discussions You Might Find Interesting
1. Programming
My issue :
I am getting only last command output data in ouput file. Though comamnd "print(output)" displays data for all 3rd column values but the data saved in file is not what required it hs to be the same which is being printed by command"print(output)".
Could you please help me to fix this,... (0 Replies)
Discussion started by: as7951
0 Replies
2. HP-UX
Hi
I want to know how capture all user command line output and save this commands and outputs to text files?
if you have script for this subject please give me.:o
please help me
thank you (6 Replies)
Discussion started by: amvhd
6 Replies
3. Shell Programming and Scripting
Hi folks,
Im having trouble with an expect command in a shell script I use to back up mac os x servers. This one is being run on a 10.8.2 Server as part of a larger bash script. The script executes perfectly all the way through when triggered on the command line, but when launchd triggers it at... (4 Replies)
Discussion started by: rowie718
4 Replies
4. Solaris
Hi I want to check if some process is sleeping. I can see that in truss -p <pid>
I want to capture output and check that output if proces sis sleeping. Please suggest way to capture output of truss command or other way to check if process is sleeping (1 Reply)
Discussion started by: ankush_mehra
1 Replies
5. Shell Programming and Scripting
Hi ,
I am running a backgorund process called hello.sh
./hello &
Now i need to capture the log file as it produces the output .
i am not able to use " >> " nor " tee " to capture the output file / log file .
Please let me know how can i do it ?
Regards,
Deepak Konnur (3 Replies)
Discussion started by: dskonnur
3 Replies
6. Shell Programming and Scripting
&& echo "PLEASE enter the command to capture output" || echo "Processing your command manual"
x=$#
echo $x
while
do
while man $@ | read -r line
do
>$@.txt
... (1 Reply)
Discussion started by: rrd1986
1 Replies
7. Solaris
Hi,
When I execute this command
prtdiag -v
output sample :
System clock frequency: 160 MHZ
Memory size: 4GB
==================================== CPUs ====================================
E$ CPU CPU
CPU Freq Size ... (4 Replies)
Discussion started by: vijaysachin
4 Replies
8. Shell Programming and Scripting
I need to know what the upload speed of an Internet connection. I thought the easiest way to do this would be to transfer a file via FTP to my server using the command:
sh-3.2$ ftp -u ftp://username:password@computerdomain/directory/ file_to_be_uploaded
Note: My environment allows me to issue... (2 Replies)
Discussion started by: zzz1528
2 Replies
9. Shell Programming and Scripting
Hi there!
I'm trying to write a script that will capture output from a command and assign it to a variable.
Let's say, for example, I'd like to catch from inside the script whatever the following command outputs:
ls *.aaa
and put it into a variable "listoffiles".
What I tried was:
set... (3 Replies)
Discussion started by: machinogodzilla
3 Replies
10. Solaris
I ran the Oracle 9i export command from a terminal to export out a big table using "exp andrew/password file=andrew.dmp log=andrew.log"
From the terminal I can see that the export is running as there is some output from the oracle export job. The export job is not complete yet. When i go check... (4 Replies)
Discussion started by: hippo2020
4 Replies
IO::Capture::Stderr(3pm) User Contributed Perl Documentation IO::Capture::Stderr(3pm)
NAME
"IO::Capture::Stderr" - Capture all output sent to "STDERR"
SYNOPSIS
use IO::Capture::Stderr;
$capture = IO::Capture::Stderr->new();
$capture->start(); # STDERR Output captured
print STDERR "Test Line One
";
print STDERR "Test Line Two
";
print STDERR "Test Line Three
";
$capture->stop(); # STDERR output sent to wherever it was before 'start'
# In 'scalar context' returns next line
$line = $capture->read;
print "$line"; # prints "Test Line One"
$line = $capture->read;
print "$line"; # prints "Test Line Two"
# move line pointer to line 1
$capture->line_pointer(1);
$line = $capture->read;
print "$line"; # prints "Test Line One"
# Find out current line number
$current_line_position = $capture->line_pointer;
# In 'List Context' return an array(list)
@all_lines = $capture->read;
# Example 1 - "Using in module tests"
# Note: If you don't want to make users install
# the IO::Capture module just for your tests,
# you can just install in the t/lib directory
# of your module and use the lib pragma in
# your tests.
use lib "t/lib";
use IO::Capture:Stderr;
use Test::More;
# Create new capture object. Showing FORCE_CAPTURE_WARN being cleared
# for example, but 0 is the default, so you don't need to specify
# unless you want to set.
my $capture = IO::Capture:Stderr->new( {FORCE_CAPTURE_WARN => 0} );
$capture->start
# execute with a bad parameter to make sure get
# an error.
ok( ! $test("Bad Parameter") );
$capture->stop();
DESCRIPTION
The module "IO::Capture::Stderr", is derived from the abstract class "IO::Capture". See IO::Capture. The purpose of the module (as the
name suggests) is to capture any output sent to "STDOUT". After the capture is stopped, the STDOUT filehandle will be reset to the previ-
ous location. E.g., If previously redirected to a file, when "IO::Capture->stop" is called, output will start going into that file again.
Note: This module won't work with the perl function, system(), or any other operation
involving a fork(). If you want to capture the output from a system command,
it is faster to use open() or back-ticks.
my $output = `/usr/sbin/ls -l 2>&1`;
METHODS
new
o Creates a new capture object.
o An object can be reused as needed, so will only need to do one of these.
o Be aware, any data previously captured will be discarded if a new capture session is started.
start
o Start capturing data into the "IO::Capture" Object.
o Can not be called on an object that is already capturing.
o Can not be called while STDERR tied to an object.
o "undef" will be returned on an error.
stop
o Stop capturing data and point STDERR back to it's previous output location I.e., untie STDERR
read
o In Scalar Context
o Lines are read from the buffer at the position of the "line_pointer", and the pointer is incremented by one.
$next_line = $capture->read;
o In List Context
o The array is returned. The "line_pointer" is not affected.
@buffer = $capture->read;
o Data lines are returned exactly as they were captured. You may want to use "chomp" on them if you don't want the end of line charac-
ter(s)
while (my $line = $capture->read) {
chomp $line;
$cat_line = join '', $cat_line, $line;
}
line_pointer
o Reads or sets the "line_pointer".
my $current_line = $capture->line_pointer;
$capture->line_pointer(1);
ARGUMENTS
Pass any arguments to new() in a single array reference.
IO::Capture::Stderr->new( {FORCE_CAPTURE_WARN => 1} );
FORCE_CAPTURE_WARN
Normally, IO::Capture::Stderr will capture text from warn() function calls. This is because output from warn() is normally directed to
STDERR. If you wish to force IO::Capture::Stderr to grab the text from warn(), set FORCE_CAPTURE_WARN to a 1. Then "IO::Cap-
ture::Stderr" will save the handle that $SIG{__WARN__} was set to, redirect it to itself on "start()", and then set $SIG{__WARN__} back
after "stop()" is called.
SUB-CLASSING
Adding Features
If you would like to sub-class this module to add a feature (method) or two, here is a couple of easy steps. Also see IO::Capture::Over-
view.
1 Give your package a name
package MyPackage;
2 Use this "IO::Capture::Stderr" as your base class like this:
package MyPackage;
use base qw/IO::Capture::Stderr/;
3 Add your new method like this
package MyPackage;
use base qw/IO::Capture::Stderr/;
sub grep {
my $self = shift;
for $line (
}
See Also
IO::Capture::Overview
IO::Capture
IO::Capture::Stdout
AUTHORS
Mark Reynolds reynolds@sgi.com
Jon Morgan jmorgan@sgi.com
COPYRIGHT
Copyright (c) 2003, Mark Reynolds. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under
the same terms as Perl itself.
perl v5.8.8 2007-07-30 IO::Capture::Stderr(3pm)