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

Reply via email to