Что такое Linux для OpenVMS DCL Ctrl/T?

Если я понимаю Вас правильно, Вы хотите добавить комментарии о файлах в списке файлов. Это не возможно, потому что, когда оболочка встречается с # символом, она проигнорирует весь оставшийся символ на командной строке. Один способ достигнуть этого состоит в том, чтобы использовать rsync с - files-from=filelist аргумент. Файл списка файлов может содержать комментарии.

С другой стороны, если Вы захотите встроить # символы в имя файла, то затем это будет работать. Например, с ударом:

touch a#b 
touch 'a #b' 
touch "a #b"
4
25.06.2012, 00:40
3 ответа

Я искренне сомневаюсь, что существует точный аналог. Природа процесса Linux (и следовательно выполнения команды) так отличается, чем природа процесса VMS и как это выполняет команду, что ничто как это не может действительно существовать.

Поскольку я понимаю VMS, когда Вы выполняете команду как TYPE SOMEFILE.TXT, DCL читает TYPE.EXE в память того же процесса, в котором DCL работает, ремонтирует все перемещения что потребности TYPE.EXE и затем переходит к первой инструкции TYPE.EXE. Когда TYPE.EXE сделал его работу, управление возвратами ОС к коду DCL, который все еще находится в том же процессе как TYPE.EXE.

Тот тяжелый процесс, который включает DCL, таблицу lexicals и известную таблицу переходов адресов различных вещей, позволяет Ctrl-T работать. То сочетание клавиш является просто специальной формой прерывания клавиатуры, и код DCL в любом данном процессе может сделать работу, которую Вы описываете.

Процесс Linux не всегда имеет оболочку (аналог DCL) в нем. Процесс Linux даже не может иметь кода обработчика прерываний клавиатуры, зарегистрированного в ядре, которое означало бы, что любое прерывание клавиатуры (Ctrl-C или Ctrl-) заставляет ядро заставлять процесс выходить.

3
27.01.2020, 20:53

BSD поддержка семейства UNIX сигнал [1] SIGINFO и управляющий символ VSTATUS [2], обычно связанный с Ctrl/T. Вывод похож на это:

load: 0.12  cmd: cat 13579 [ttyraw] 0.00u 0.00s 0% 880k

[1] сигнал (7) [2] stty (1)

2
27.01.2020, 20:53

В Linux dd поддерживает SIGUSR1 для статуса: http://man7.org/linux/man-pages/man1/dd.1.html

  Отправка сигнала USR1 на при запуске процесса 'dd' он распечатывает статистику ввода-вывода 
до стандартной ошибки, а затем возобновляет копирование. 
 

В BSD dd поддерживает SIGINFO для статуса: https://www.freebsd.org/cgi/man.cgi?query=dd&sektion=1

Если dd получает сигнал SIGINFO (см. аргумент статуса для stty (1)), текущий ввод и счетчики выходных блоков будут записаны в стандартный вывод ошибок в том же формате, что и стандартное сообщение о завершении. Если dd получает сигнал SIGINT, текущие счетчики блоков ввода и вывода будут записаны в стандартный вывод ошибок в том же формате, что и стандартное сообщение о завершении , и dd завершит работу .

Кстати: программа VMS BACKUP имеет хороший вывод для Control-T.

1
27.01.2020, 20:53

Теги

Похожие вопросы