[an error occurred while processing this directive]

HP OpenVMS Systems

ask the wizard
Content starts here

Problems with DCL PIPE?

» close window

The Question is:

 
Pipe and the "show symbol".
 
I had a global symbol jd_6. It was one of the symbols
within symbol "array" with global symbols jd_<n> (n=1,21)
 $ say f$type(jd_6)
STRING
I new that there was several ways to display a value of the symbol
but that day I wanted to diplay the symbol using pipe command.
 $ pipe show symb jd_* | search sys$input jd_6 /nooutput
 %SEARCH-I-NOMATCHES, no strings matched
I was surprised when I saw NOMATCHES message.
I did the following:
 $ define  sys$output show_symb.lis
 $ show symb jd_*
 $ deas sys$output
 $ search show_symb.lis jd_," == "/match=and /nooutput /stat
 Files searched:                 1       Buffered I/O count:         4
 Records searched:              21       Direct I/O count:           2
 Characters searched:         5443       Page faults:               16
 Records matched:               21       Elapsed CPU time:  0 00:00:00.01
 Lines printed:                  0       Elapsed time:      0 00:00:00.03
 $ search show_symb.lis jd_6 /nooutput
 $ say $severity
 1
It told me that it was 21 global symbols jt_<n> and symbol jd_6 was defined
too, but could not be seen with the pipe command.
 
I did the following too:
 $ pipe show symb jd_* | search sys$input jd_," == "/match=and/nooutput /stat
 Files searched:                 1       Buffered I/O count:        12
 Records searched:              10       Direct I/O count:           0
 Characters searched:         2439       Page faults:               18
 Records matched:               10       Elapsed CPU time:  0 00:00:00.00
 Lines printed:                  0       Elapsed time:      0 00:00:00.00
It told me that only 10 of the jd_ symbols could be seen with the pipe command.
The command:
 $ pipe show symb jd_* | search sys$input jd_," == "/match=and
displayed symbols jd_1,10,11,12,13,14,2,3,4,7
The same symbols were displayed when I used "type" instead for "search"
 
Why were some symbols missing when I used pipe?
 
 
 


The Answer is :

 
  When posing a question such as this, please provide a complete
  standalone reproducer for the problem.  Using examples such as
  the following, the OpenVMS Wizard is unable to duplicate the
  reported behaviour:
 
$ jd_6 == "Hello"
$ pipe show symbol jd_* | search sys$pipe jd_6," == "/match=and
  JD_6 == "Hello"
$ pipe show symbol jd* | search sys$input jd," == "/match=and
  JDBD*UMP == "$SYS$SYSTEM:TCPIP$DHCP_DBDUMP.EXE"
  JDBM*OD == "$SYS$SYSTEM:TCPIP$DHCP_DBMODIFY.EXE"
  JDBR*EG == "$SYS$SYSTEM:TCPIP$DHCP_DBREGISTER.EXE"
  JDBS*HOW == "$SYS$SYSTEM:TCPIP$DHCP_DBSHOW.EXE"
  JD_6 == "Hello"
 
 
  SYS$INPUT is the command input stream for a DCL command procedure,
  though PIPE provides SYS$INPUT and SYS$PIPE for the command input
  and for the output from the previous stage of the PIPE.  You will
  particularly want to use SYS$PIPE as the input stream from the
  previous stage if you are invoking a procedure from within a PIPE.
 

answer written or last revised on ( 21-JUN-2000 )

» close window