Subject: | |
From: | |
Reply To: | |
Date: | Sat, 13 Aug 1994 18:18:33 -0500 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
In article <1994Aug13.140609.28045@miavx1>, [log in to unmask]
(Derek Brown) writes:
> Why does it work to say
> lynx http://wherever
>
> but when I said test=="lynx http://andonandon", the command 'test' didn't
> work?
The reason is actually fairly simple, but takes a little of explaining...
There are 2 different ways to create "commands" in OpenVMS. The first is
to use a .CLD file and the SET COMMAND command. This is the way most
commands are created.
The second way is to create a "foreign" command. These are really just
symbols that point to programs to run. Several commands on the system are
really just foreign commands (e.g. NEWS, LYNX, etc.). To see this, try the
command:
$ SHOW SYMBOL LYNX
This should result in the following output:
LYNX == "$sysext_root:[extensions.lynx.lynx2-1]lynx.exe"
It would be nice, then if the reference to LYNX in your command could be
dereferenced, but, unfortunately, symbols in OpenVMS cannot be recursively
dereferenced.
So how do you fix this problem? Just define your command as follows:
$ test=="''lynx' http://andonandon"
The single quotes tells OpenVMS to dereference the symbol inside the single
quotes at the time it's defined (rather than during execution). The extra
quote at the beginning is because the expression is inside double quotes.
Now, if you issue the command:
$ SHOW SYMBOL TEST
You should see:
TEST == "$sysext_root:[extensions.lynx.lynx2-1]lynx.exe http://andonandon"
Hope this helps.
--
Kent Covert, Software Coordinator
Miami Computing and Information Services
Miami University, Oxford, OH
[log in to unmask] (internet)
kacovert@miavx1 (bitnet)
|
|
|