Изменить приглашение в OpenVMS

Я ищу некоторую помощь с openVMS.

Подсказка по умолчанию под VMS $

Я хочу обновить это, чтобы отразить текущий рабочий каталог, в котором я нахожусь, как я могу в Unix/Linux, когда я меняю каталоги.

Я создал файл с именем login.com и поместил его в свой домашний каталог в системе openVMS и добавил следующий код:

$ SET PROMPT='f$environment("default")'

Что должно работать, отображая текущий каталог, однако он отражает только мой домашний каталог во время входа в систему. Он не обновляется динамически, так как я меняю каталоги. Если я выполню указанную выше команду в терминале, она покажет текущий каталог.

Есть ли возможность обновить login.com, чтобы динамически обновлять подсказку каждый раз, когда я меняю каталог?

1 ответ

Насколько мне известно, лучшее, что вы можете сделать, - это создать командный файл, чтобы изменить каталог и настроить приглашение.

Создайте файл с именем CD.COM со следующим:

$ set default 'p1'
$ current = f$dir()
$ d_start = f$locate ( "[", current ) + 1
$ d_stop = f$length ( current ) - 2
$ current_dir = f$extract( d_start, d_stop, current )
$ new_prompt = "SERVER::" + current_dir + ">"
$
$loop:
$ if f$length(new_prompt) .ge. 30
$       then
$       d_start = f$locate ( ".", new_prompt ) + 1
$       new_prompt = "SERVER::" + f$extract ( d_start, d_stop, new_prompt )
$       goto loop
$ endif
$ set prompt='new_prompt

Вы можете изменить условие в цикле в зависимости от того, как долго вы хотите, чтобы приглашение было

Тогда в вашем LOGIN.COM файл создать логическое указание на каталог с CD.COM файл

$ DEFINE /GROUP CD "Disk:[Folder.Containing.COM.File]"

Тогда используйте это так:

CD Disk:[Full.Path.To.Dir]

или же

CD [.subdir]

Единственный раз, когда это не будет обновлять приглашение правильно, если вы используете CD Команда внутри другого COM-файла. Однако он по-прежнему будет правильно менять каталог.

Другие вопросы по тегам