comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Capturing screen output
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Capturing screen output [message #28219 is a reply to message #28121] Mon, 26 November 2001 10:40 Go to previous message
Ken Mankoff is currently offline  Ken Mankoff
Messages: 158
Registered: February 2000
Senior Member
Hi David, Liam

Liam: Are you using IDL 5.4?

I noticed this change when I switched to v5.4, both on a Linux and Sun
system. I wonder if RSI changed stderr/stdout or something like that. All
my atjobs stopped sending me output. I ran the commands interactively and
all appeared normal. However, I cannot get the redirect command to work in
v5.4. Makes debugging harder...

Not even a 'printf, -2, "Hello World"' works!

David, my solution was this: If the output is *not* critical, then debug
by starting IDL and typing:
IDL> @filename
where 'filename' will be used like this:
% idl < filename >& output.txt

If output is important for more than debugging, I do the following:
IDL> mail, 'me@some.com you@dot.com', 'me', 'a message', important_output

PRO mail, to, from, subj, mesg
unique = STRTRIM( STRING( LONG( systime( 1 ) ) ), 2 ) + '.email'
openw, lun, unique, /get
printf, lun, "To: " + to ; To, From, Subject necessary for sendmail
printf, lun, "From: " + from
printf, lun, "Subject: " + subj
printf, lun, mesg
close, lun
sendCmd = 'sendmail -t < ' + unique
spawn, sendCmd, /sh
cleanCmd = 'rm ' + unique
spawn, cleanCmd, /sh
END

hope this helps, and please let us know if you get non-interactive output
captured!

-k.


On Mon, 26 Nov 2001, David Shadovitz wrote:

> Liam,
>
> Thanks for that. But I cannot even get that far! If I just make a simple
> file containing IDL commands, it runs fine unless I try to redirect its
> output. When I redirect its output, the output file is empty. Here's what I
> mean:
>
> $ cat runidl
> print, 'Hello world'
> exit
>
> $ idl runidl
> IDL Version 5.4 (sunos sparc). (c) 2000, Research Systems, Inc.
> Hello world
>
> $ idl runidl > runidl.out
> IDL Version 5.4 (sunos sparc). (c) 2000, Research Systems, Inc.
>
> $ cat runidl.out
> $
>
> Any ideas?
> -David
>
> "Liam E. Gumley" wrote:
>
>> David Shadovitz wrote:
>>>
>>> I'm running IDL 5.4 on a Sun.
>>>
>>> I've got a file, cpsub1, which looks like this:
>>>
>>> $ cat cpsub1
>>> echo "computePPP, /batch, inputfile='abc.hdf'" | idl
>>>
>>> If I run it by simply typing cpsub1 at the command line, all of the IDL
>>> messages and PRINT statement outputs are sent to the screen:
>>>
>>> $ cpsub1
>>> % Compiled module: MODULE1
>>> % Compiled module: MODULE2
>>> % Compiled module: MODULE3
>>> Entered main routine...
>>> Computing the power...
>>> Done.
>>> $
>>>
>>> I'd like to capture that information in a log file, so I tried
>>> redirecting standard output, like this:
>>>
>>> $ cat cpsub2
>>> echo "computePPP, /batch, inputfile='abc.hdf'" | idl > cplog2
>>>
>>> $ cpsub2
>>> % Compiled module: MODULE1
>>> % Compiled module: MODULE2
>>> % Compiled module: MODULE3
>>> $
>>>
>>> As you can see, now only the IDL messages are written to the screen.
>>> But the PRINT statement outputs aren't sent to the log file! Upon
>>> completion, cplog2 is a 0-byte file.
>>>
>>> Then I tried redirecting both standard output and standard error:
>>>
>>> $ cat cpsub3
>>> echo "computePPP, /batch, inputfile='abc.hdf'" | idl > cplog3 2>&1
>>> $ cpsub3
>>> $
>>>
>>> Now nothing is written to the screen. But neither is it going to the
>>> log file! Upon completion, cplog3 is a 0-byte file.
>>>
>>> Can anyone help me capture the IDL messages and the PRINT statement
>>> output into a file? I'm running my code in this odd manner because
>>> ultimately I want to run the job in batch mode via 'ssub'.
>>
>> David,
>>
>> The following method works for me (I normally use the C shell):
>>
>> #---cut here---
>> #!/bin/csh -f
>>
>> # Sample script to execute IDL in batch mode
>>
>> # Create IDL run script
>> echo "print, 'Hello world'" > runidl
>> echo "exit" >> runidl
>>
>> # Run IDL
>> /usr/local/bin/idl runidl >& runidl.out
>> #---cut here---
>>
>> You may need to adjust the last line if IDL is installed in a
>> non-default directory.
>>
>> Cheers,
>> Liam.
>> Practical IDL Programming
>> http://www.gumley.com/
>
>
>


--
Ken Mankoff
LASP://303.492.3264
http://lasp.colorado.edu/~mankoff/
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: Structure assign question
Next Topic: Re: can i place a job advert

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sun Oct 12 00:04:58 PDT 2025

Total time taken to generate the page: 1.59887 seconds