У OpenVMS, як я можу побачити, звідки береться команда - на зразок “котрий” у NIX


4

Якщо в OpenVMS у мене є команда dosomething , звідки я можу побачити, звідки вона надходить (Місце розташування скрипту / exe - як це визначено, якщо це інший вид тварини)

Відповіді:


2

$ ШОУ ПРОЦЕС / ВСІ

$ SHOW ENTRY

$ SHOW ENTRY / FULL


Не думайте, що це OpenVMS
user1987442

Ого, це моя епічна неуважність. Правильно.
СТТР

1

Існує три "джерела" DCL, як ви кажете, "походять від" чогось такого типу.

Одне попередження: синтаксиси з видимим явним виконанням DCL, наприклад:

$'dosomething'

тут не рахуються, лише "видимі, як команда".

Також явні команди RUN або MCR є самими командами, то run dosomethingвони не цікавляться.

Як перевірити

  1. Символи

    Функція: як псевдонім un * x або як «запуск програми з параметрами», майже як дозори MCR.

    Зробіть:

    $ show symbol dosomething
    

    Символи "першого використання" (якщо вони використовуються, то мають пріоритет перед наступними кроками)

  2. Справжня команда DCL

    Немає вбудованої утиліти для перевірки командної таблиці.

    Однак ви можете встановити безкоштовну утиліту VERB.

    Потім зробіть:

    $ verb dosomething
    

    "Зображення" та "cliroutine" (у висновку VERB) показують .EXE або внутрішню процедуру DCL, де виконується команда.

  3. Використання шляху

    Зробіть:

    $ directory DCL$PATCH:dosomething
    

    Якщо файл .COM або .EXE існує, командна процедура працює майже як після @DCL$PATH:dosomethingабо зображення коду працює як mcr DCL$PATH:dosomething.

    Використання шляху - це "останній шанс" (лише якщо символ не існує або не використовується і не існує істинної команди DCL)

    "Майже" у всіх описаних вище описах, оскільки існують незначні різниці в інтерпретації синтаксису, здебільшого не мають значення.

Деякі додаткові пояснення

  1. Якщо існує символ з ім'ям, що відповідає вашій "команді", вміст символу може бути переведений двома способами:

    • якщо вміст починається з "$", використання має назву "іноземна команда" і запускає зображення (файл .EXE) решти вмісту, аж до роздільника (параметр може застосовуватися майже як у псевдонімі); попередження: каталог за замовчуванням вказаного .EXE - SYS $ SYSTEM :, не за замовчуванням процесу!

    • у всіх інших випадках значення може функціонувати як псевдонім un * x.

    Значення символу "вказується" в командному рядку, а заміщений текст інтерпретується як ("нова") команда.

    Слово "може" стосується налаштування SET SYMBOL (перевірте HELP SET SYMBOL для опису VERB).

    Майте на увазі, що псевдонім додатково пояснює інший реальний синтаксис dcl (справжня команда, експлікація "@" для процедури або "невидиме" використання DCL $ PATH), але не до наступного символу (псевдонім або іноземна команда).

    Настійно не рекомендується замінювати будь-яку справжню команду DCL псевдонімами, НЕ це!

  2. Істинна команда встановлюється командою SET COMMAND (очевидно), виконувані (зображення .EXE або внутрішня програма DCL) не пов'язані по-іншому з іменем команди, навіть якщо більшість команд має адекватні імена (команда DIRECTORY запускає SYS $ SYSTEM: DIRECTORY.EXE тощо, але додаток запускає COPY.EXE і HELP запускає VMSHELP.EXE тощо)

  3. Шлях використовується як у un * x, але:

    • Тільки після того, як перевіряється таблиця справжніх команд (звичайно, також після використання символу псевдоніму, але це "un * x like")
    • Зображення, призначені для використання справжньої команди в більшості випадків, не можна використовувати таким чином (існує десь працює з іншим синтаксисом, наприклад: INSTALL)

0

Не думайте, що це працює саме так у OpenVMS, і не існує надійного способу afaik. Для шоу DCL, більшість класифікаторів виявиться в SYS $ SYSTEM: SHOW.EXE, але без файлу MAP не було б можливості зрозуміти, який вихідний модуль насправді увійшов у цей виконуваний файл. DCL не схожий на Bash, де він fork-exec інший процес і завантажує зображення цієї команди.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.