Note that you can manipulate this. Include stderr in returned result: hostcmd_j_ 'example 2>&1' or hostcmd_j_ 'exec 2>&1; example'
return only stderr and echo stdout in jconsole: hostcmd_j_ 'exec 3>&1; exec 1>&2; exec 2>&3; example' Thanks, -- Raul On Mon, Nov 27, 2017 at 9:58 PM, bill lam <[email protected]> wrote: > Oh, I might be wrong, stderr (not stdout) is echoed in jconsole. > > On Sun, Nov 26, 2017 at 4:45 PM, bill lam <[email protected]> wrote: >> When using jqt, there is no standard screen output on J session term. But >> should be there if running under jconsole. >> >> >> On Nov 26, 2017 4:06 AM, "J. Patrick Harrington" <[email protected]> wrote: >>> >>> Sorry, I meant "returning with no screen output' >>> I am now running the full program with hostcmd_j_ for 2!:0. >>> It's chugging away, hasn't failed yet. :-) >>> >>> On Sat, 25 Nov 2017, J. Patrick Harrington wrote: >>>> >>>> Chris, >>>> >>>> That test works. I just tried >>>> >>>> hostcmd_j_ '../synmod.exe < fort.5 >fort.6' >>>> >>>> and that works as well, returning with screen output, and writing >>>> successfully to fort.6. So hostcmd_j_ ~: 2!:0 >>>> >>>> On Sat, 25 Nov 2017, chris burke wrote: >>>> >>>>> Here is another test, this time with redirection, and using hostcmd. >>>>> When >>>>> foo is run, it should wait 2 seconds and return its (string) argument. >>>>> If >>>>> this works, try the same with synmod.exe. >>>>> >>>>> T=: jpath '~temp/' >>>>> F=: T,'t1.sh' >>>>> G=: T,'t2.txt' >>>>> H=: T,'t3.txt' >>>>> >>>>> F fwrites~ '#!/bin/bash',LF,'sleep 2',LF,'read var',LF,'echo $var' >>>>> fmakex F >>>>> >>>>> foo=: 3 : 0 >>>>> G fwrites~ y >>>>> H fwrites~ '' >>>>> hostcmd_j_ F,' < ',G,' > ', H >>>>> smoutput freads H >>>>> ) >>>>> foo 'hello' >>>>> >>>>> On Sat, Nov 25, 2017 at 10:22 AM, J. Patrick Harrington >>>>> <[email protected]> >>>>> wrote: >>>>> >>>>> > Chris, >>>>> > I have finally got back to my mac to test this. I have >>>>> > installed >>>>> > the latest j806 to make sure it's up to date (and tried this with >>>>> > j805 >>>>> > with the same results as reported here). Both pass your test: >>>>> > > F=: jpath '~temp/t1.sh' >>>>> > F fwrites~ '#!/bin/bash',LF,'sleep 2',LF,'echo "done"' >>>>> > 32 >>>>> > fmakex F >>>>> > foo=: 3 : 0 >>>>> > echo 2!:0 F >>>>> > echo 2+3 >>>>> > ) > foo'' >>>>> > done >>>>> > > 5 >>>>> > > The mac is a late 2014 mini running OS 10.12.6 (Sierra). >>>>> > JVERSION >>>>> > Engine: j806/j64nonavx/darwin >>>>> > Release: commercial/2017-11-06T10:18:00 >>>>> > Library: 8.06.09 >>>>> > Qt IDE: 1.6.2s/5.6.3 >>>>> > Platform: Darwin 64 >>>>> > Installer: J806 install >>>>> > InstallPath: /users/jph/j64-806 >>>>> > > But... my program still fails. I can simplify the problem by just > >>>>> > > entering >>>>> > one line (after setting the directory to >>>>> > /Users/jph/tlusty205/synspec/j >>>>> > ph): >>>>> > 2!:0 '../synmod.exe < fort.5 > fort.6' >>>>> > Instead of writing the output to fort.6, it dumps that output to the >>>>> > Jqt >>>>> > session: >>>>> > ... >>>>> > PARTITION FUNCTIONS AT THE STANDARD DEPTH >>>>> > ------------------------------------------ >>>>> > > > H 4.58E+00 1.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 >>>>> > > > 0.00E+00 >>>>> > 0.00E+00 >>>>> > He 1.00E+00 2.00E+00 1.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 >>>>> > 0.00E+00 >>>>> > Li 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 >>>>> > 0.00E+00 >>>>> > Be 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 >>>>> > 0.00E+00 >>>>> > B 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 >>>>> > 0.00E+00 >>>>> > C 1.19E+02 6.12E+00 1.04E+00 2.01E+00 1.00E+00 0.00E+00 0.00E+00 >>>>> > 0.00E+00 >>>>> > > etc. >>>>> > This is just the tail of the 557 line output file. So the > direction >>>>> > of >>>>> > the script is not followed. But if I go to a terminal shell in the >>>>> > same >>>>> > directory and enter >>>>> > ../synmod.exe < fort.5 > fort.6 >>>>> > it executes without any screen output. And the results are printed to >>>>> > fort.6. >>>>> > > On my Dell XPS running 806 under Ubuntu 16.04, >>>>> > 2!:0 '../synmod.exe < fort.5 > fort.6' >>>>> > returns to the qt terminal without any screen output, and looking at >>>>> > fort.6, the expected results have been written there. So there is >>>>> > some problem about how 2!:0 handles the directed output on the mac as >>>>> > opposed to the Linux machine. >>>>> > > I suppose I could work around this by modifing the fortran program >>>>> > > to > send >>>>> > the output directly to a file called 'fort.6' instead of directing >>>>> > the >>>>> > standard output. But it's huge program I didn't write, and I'd rather >>>>> > > not. >>>>> > > Regards, Patrick >>>>> > > On Wed, 22 Nov 2017, chris burke wrote: >>>>> > > > You should be able to do a simple test to see if 2!:0 waits, for >>>>> > > > > > example >>>>> > > as >>>>> > > below. This does wait on my Mac with the same J as you, except the >>>>> > > avx >>>>> > > version. >>>>> > > > > F=: jpath '~temp/t1.sh' >>>>> > > F fwrites~ '#!/bin/bash',LF,'sleep 2',LF,'echo "done"' >>>>> > > fmakex F >>>>> > > > > foo=: 3 : 0 >>>>> > > echo 2!:0 F >>>>> > > echo 2+3 >>>>> > > ) > > > > foo'' >>>>> > > > > On Wed, Nov 22, 2017 at 7:28 PM, J. Patrick Harrington > > >>>>> > > > > <[email protected] >>>>> > > > > > wrote: >>>>> > > > > Bill, >>>>> > > > > > > I've tried that. ../synmod.exe < fort.5 > fort.6 in a >>>>> > > > > > > terinal >>>>> > > > window works fine on all three machines. And the directory change >>>>> > > > is OK. WHen the program fails on the Mac Mini, the J session is >>>>> > > > left in the /home/tages/tlusty205/synspec/jph directory. >>>>> > > > > > > Patrick >>>>> > > > > > > On Thu, 23 Nov 2017, bill lam wrote: >>>>> > > > > > > You can try executing the cmd in bash shell to verify >>>>> > > > > > > whether it > > > actually >>>>> > > > > work on the other machine. >>>>> > > > > > > > > Also check the cwd in J session to see it is correct. >>>>> > > > > > > > > On Nov 23, 2017 12:54 AM, "J. Patrick Harrington" > > > >>>>> > > > > > > > > > <[email protected]> >>>>> > > > > wrote: >>>>> > > > > > > > > A>> A problem has surfaced which has me puzzled. I >>>>> > > > > > > > > have written > > > > A>> a >>>>> > > > > > > > > > > program which needs the results of another program, >>>>> > > > > > > > > > > synmod.exe, > > > which >>>>> > > > > > > > reads in a file, executes for a few seconds, and writes >>>>> > > > > > > > the > > > > results >>>>> > > > > > to the file fort.6 (synmod.exe is my modification of a 10,000 >>>>> > > > > > > > > > > line >>>>> > > > > > fortran program). The relevant part of my program is as >>>>> > > > > > follows: >>>>> > > > > > > > > > > LAM=: IX=: QX=: <'' >>>>> > > > > > 1!:44 '/home/tages/tlusty205/synspec/jph' >>>>> > > > > > 'Ti gi lam1 lam2'=. y >>>>> > > > > > fix55 lam1, lam2 NB. put lam1 & lam2 into fort.55 >>>>> > > > > > lngg=. 10^. gi >>>>> > > > > > nh=. -:#Ti >>>>> > > > > > i=. _1 >>>>> > > > > > while. (i=. >:i)<nh do. >>>>> > > > > > Tii=. i{Ti >>>>> > > > > > lngi=. i{lngg >>>>> > > > > > Kbicub Tii, lngi >>>>> > > > > > 2!:0 '../synmod.exe < fort.5 > fort.6' >>>>> > > > > > Z=. lam2 CLEAN Extract'' >>>>> > > > > > 'mu rad deg lam Flx Ia Qa pol'=. Z >>>>> > > > > > LAM=: LAM, <lam >>>>> > > > > > IX=: IX, <Ia >>>>> > > > > > QX=: QX, <Qa >>>>> > > > > > end. >>>>> > > > > > 1!:44 '/home/tages/J6/SPIN.d' >>>>> > > > > > > > > > > The issue here is the Foreign 2!:0. This code works >>>>> > > > > > > > > > > *perfectly* > > > > > on my >>>>> > > > > > Dell >>>>> > > > > > laptop running >>>>> > > > > > JVERSION >>>>> > > > > > Engine: j806/j64/linux >>>>> > > > > > Release: commercial/2017-11-06T09:54:01 >>>>> > > > > > Library: 8.06.09 >>>>> > > > > > Qt IDE: 1.6.2/5.3.2 >>>>> > > > > > Platform: Linux 64 >>>>> > > > > > Installer: J806 install >>>>> > > > > > InstallPath: /home/tages/j64-806 >>>>> > > > > > > > > > > But... the very same code running on either of the >>>>> > > > > > > > > > > other two > > > > > machines I >>>>> > > > > > use fails. The line 2!:0 '../synmod.exe < fort.5 > fort.6' >>>>> > > > > > should write the results of synmod to the file fort.6, but >>>>> > > > > > instead defines fort.6 but writes nothing to it. Thus the >>>>> > > > > > Extract'' routine fails when it tries to read fort.6. >>>>> > > > > > > > > > > I suspect that while 2!:0 waits for synmod.exe to >>>>> > > > > > > > > > > finish, maybe >>>>> > > > > > on my other machines it transfers to the next line of the J >>>>> > > > > > code >>>>> > > > > > before fort.6 is written. One of these machines is a Mac Mini >>>>> > > > > > > > > > > running >>>>> > > > > > JVERSION >>>>> > > > > > Engine: j806/j64nonavx/darwin >>>>> > > > > > Release: commercial/2017-11-06T10:18:00 >>>>> > > > > > Library: 8.06.09 >>>>> > > > > > Qt IDE: 1.6.2s/5.6.3 >>>>> > > > > > Platform: Darwin 64 >>>>> > > > > > Installer: J806 install >>>>> > > > > > InstallPath: /users/jph/j64-806 >>>>> > > > > > > > > > > So I'm asking if the foreign 2!:0 in some cases >>>>> > > > > > > > > > > returns without >>>>> > > > > > waiting. I thought just 2!:1 did that. >>>>> > > > > > > > > > > Apologies for the long-winded post, Patrick >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > ---------------------------------------------------------------------- >>>>> > > > > > For information about J forums see > > > > > >>>>> > > > > > http://www.jsoftware.com/forums.htm >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > ---------------------------------------------------------------------- >>>>> > > > > For information about J forums see > > > > >>>>> > > > > http://www.jsoftware.com/forums.htm >>>>> > > > > > > > > >>>>> > > > > > > > > ---------------------------------------------------------------------- >>>>> > > > For information about J forums see > > > >>>>> > > > http://www.jsoftware.com/forums.htm >>>>> > > > > > > >>>>> > > > > > > ---------------------------------------------------------------------- >>>>> > > For information about J forums see >>>>> > > http://www.jsoftware.com/forums.htm >>>>> > > > >>>>> > > > ---------------------------------------------------------------------- >>>>> > For information about J forums see >>>>> > http://www.jsoftware.com/forums.htm >>>>> > >>>>> ---------------------------------------------------------------------- >>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>> >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>> >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
