Изменить приглашение в 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-файла. Однако он по-прежнему будет правильно менять каталог.