![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
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.
|