script: записывать оба кода выхода и выхода

Команда script регистрирует весь сеанс оболочки для файла. Это здорово, но при просмотре сеанса я хотел бы видеть код выхода для каждой команды, которую я запускал.

Можно ли зафиксировать это в журналах script ? В идеале без отображения его пользователю сеанса script , но это было бы приемлемо, если необходимо.

Пример запуска скрипта:

 me:~ oliverlade$ script Script started, output file is typescript bash-3.2$ echo "hello" hello bash-3.2$ true bash-3.2$ false bash-3.2$ exit exit Script done, output file is typescript 

Содержимое файла журнала:

 me:~ oliverlade$ cat typescript Script started on Sun Aug 7 13:02:43 2016 bash-3.2$ echo "hello" hello bash-3.2$ true bash-3.2$ false bash-3.2$ exit exit Script done on Sun Aug 7 13:03:03 2016 

Что бы я хотел:

 me:~ oliverlade$ cat typescript Script started on Sun Aug 7 13:02:43 2016 bash-3.2$ echo "hello" hello (exit 0) bash-3.2$ true (exit 0) bash-3.2$ false (exit 1) bash-3.2$ exit exit Script done on Sun Aug 7 13:03:03 2016 

2 Solutions collect form web for “script: записывать оба кода выхода и выхода”

На страницах script man:

 -e, --return 

«Верните код выхода дочернего процесса. Используется в том же формате, что и окончание bash при завершении кода завершения сигнала, равно 128 + n». Я неправильно истолковал это …

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

Вы можете включить статус выхода последней выполненной команды ( $? ) В своем основном приглашении ( PS1 ).

Один пример:

 $ PS1='$? \$ ' 0 $ 

Тестирование:

 0 $ false 1 $ 

Вы должны использовать одинарные кавычки, чтобы избежать расширения $? во время назначения PS1 . Вы не должны export переменную приглашения.

Другой пример:

 $ PS1=$'(exit $?)\n$ ' (exit 0) $ 

Тестирование:

 (exit 0) $ false (exit 1) $ 
  • Пропустить первую строку (или больше) в CSV-файле, который используется для переименования файлов
  • Изменение IP удаленно по ssh
  • целочисленное выражение ожидается bash
  • Как проверить, существует ли один или оба из двух файлов?
  • Проверьте зависимости bash / shell
  • Использование последовательных имен переменных в скрипте
  • bash: ожидаемое целочисленное выражение
  • автопринятие ключа rsa в скрипте bash
  • Специфика использования переменной BASH и условного IF
  • Точка с запятой в условных структурах
  • скрипт для сравнения двух строк "foo" и "bar"
  • как использовать grep -v в сценарии ожидания
  • Interesting Posts

    Получить сменный путь диска по метке в сценарии bash

    Как выйти из системы и применить новые настройки группы

    Монитор MPSSH Прогресс, возможно, PV?

    Просмотр сообщений системной консоли в графическом интерфейсе

    две команды по каналам, каждый из которых должен читать пароль от stdin

    Есть ли шанс исправить двойную загрузку, не нужно включать и выключать UEFI для переключения ОС?

    Что происходит, когда сетевой интерфейс «воспитывается» с ifconfig?

    вырезать столбец int array в CSV без обрезки другого массива varchar

    Сопоставление домашней папки в другом месте в fstab

    Лазанья не импортирует Python3 в монетный двор

    Терминал: используйте другую команду в предыдущем файле

    Отсутствует файл iptables в каталоге /etc/init.d/ (Fedora 17)

    Как получить мое приложение в диспетчере пакетов Debian

    Почему Firefox настолько медленнее, чем SSH?

    Как выбрать строки из файла CSV на основе разных значений столбцов?

    Linux и Unix - лучшая ОС в мире.