HP OpenVMS Systems

ask the wizard
Content starts here

DCL Symbol Substitution?

» close window

The Question is:

I am trying to define a symbol to perform the following command, however after
 the first time using the symbol it changes the symbols definition.  How can I
 get this to work.  Thanks
Show symbol Test
Test = "@sys$login:logout ''f$environment("PROCEDURE") "
Show symbol Test
Test = "@sys$login:logout TNA629: "

The Answer is :

  You have unfortunately not indicated details of what you want to do,
  nor provided a complete reproducer.  Without background and without
  details of the problem you are trying to solve, the OpenVMS Wizard
  has difficulty providing answers and alternatives.
  Note that the use of the double-leading-apostrophe notation within
  the quoted string causes the substitution to be performed immediately
  when the DCL command for the assignment is entered, and not later when
  the DCL command -- the one being created within the symbol -- is
  eventually evaluated.
  Also note that f$environment("PROCEDURE") provides the name of the
  DCL command procedure.  If you wish to acquire the terminal device
  associated with the current process, use of the DCL lexical functions
  f$getdvi("TT","FULLDEVNAM") or f$getdvi("TT","DEVNAM") can be useful.
  If you want to pass a variable parameter to the target DCL procedure,
  one of the easiest ways can involve a DCL procedure "wrapper", a small
  DCL procedure that calls the target DCL procedure with the desired

answer written or last revised on ( 8-MAY-2001 )

» close window