Jump to content

скрипт (Unix)

Команда сценария — это утилита Unix , записывающая сеанс терминала . Он восходит к версии 3.0 Berkeley Software Distribution (BSD) 1979 года. [1]

Использование

[ редактировать ]

Сеанс сценария фиксируется в имени файла. typescript по умолчанию; чтобы указать другое имя файла, следуйте инструкциям script команда с пробелом и именем файла как таковое: script recorded_session.

Записанный формат script состоит из текстовой информации о времени (для всего сеанса) и дословного вывода команды, включая любой escape-код ANSI, который программа напечатала для форматирования. Для этой цели используется псевдотерминал , поэтому программы действуют точно так же, как если бы они находились на терминале. [1] Утилита -Linux scriptreplay Команда предлагает функцию воспроизведения для своего сценария, которая поддерживает использование дополнительного файла синхронизации для информации на уровне символов. [2] [3] Некоторые онлайн-сервисы, такие как ныне несуществующий shelr.tv, также могут показывать этот формат как альтернативу видеоскринкастам с низкой пропускной способностью. [4]

Проблемы с командой скрипта

[ редактировать ]

Одна из проблем команды сценария заключается в том, что она позволяет регистрировать только дочерний процесс; и часто возникает необходимость зарегистрировать команду в текущем процессе без создания нового процесса, например, когда необходима автоматизация сценария, который может регистрировать собственный вывод. Операционные системы Unix делают это возможным благодаря использованию каналов и перенаправлений. Рассмотрим следующие примеры моделей:

Оболочка Борна Все оболочки, относящиеся к оболочке Bourne ( sh) — например: оболочка Томпсона ( sh), Баш ( bash), КорнШелл ( ksh), Z оболочка ( zsh) — разрешить stdout и stderr привязку к именованному каналу и перенаправление на команду tee , например:

LOGNAME="script"
rm -f $LOGNAME.p $LOGNAME.log
mknod $LOGNAME.p p 
tee  <$LOGNAME.p $LOGNAME.log &
exec >$LOGNAME.p 2>&1

Приведенный выше сценарий записывает в script.log весь вывод exec команда. Однако некоторые интерактивные программы (например, Python ) не отображают свой стандартный ввод при запуске в результирующей оболочке, хотя они это делают при запуске под командой сценария, опять же из-за обнаружения терминала.

Альтернативы команде сценария

[ редактировать ]

Программа ttyrec 2000 года предоставляет такую ​​же функциональность и предлагает несколько привязок. Время аналогично util-linux. Более современный подход к этой концепции — «asciicast» JSON , используемый asciinema. [5]

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б script(1) FreeBSD по основным командам Руководство
  2. ^ scriptreplay(1) Linux пользователя Руководство – Пользовательские команды
  3. ^ LinuxInsight - воспроизведение сеансов терминала с помощью scriptreplay
  4. ^ О боже! Убунту! - Как быстро записывать и делиться скринкастами терминала
  5. ^ «О-аскинема» .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d415ea595570095a072a4077f5421937__1706360940
URL1:https://arc.ask3.ru/arc/aa/d4/37/d415ea595570095a072a4077f5421937.html
Заголовок, (Title) документа по адресу, URL1:
script (Unix) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)