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 

  • Crontab и Tmux не играют хорошо вместе
  • Сценарий. Как сортировать и перемещать каталоги
  • Сценарий Bash не может перемещать файлы
  • Где сохранить временные файлы для сценариев оболочки
  • Поиск файлов с использованием сценария оболочки
  • Bash Выполнение скрипта из сценария вызывает проблемы эха и чтения
  • Убивать именованный процесс старше X минут? (нет killall -o)
  • bash scripting добавить аргументы
  • 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) $ 
    Interesting Posts

    dns разрешает для 2 IP-адресов с одинаковой ссылкой

    Как заставить network.target ждать DHCP с помощью systemd-networkd?

    Удалить конечные запятые в строке

    Где я могу найти, где находится файл .htaccess и используется на сервере Mac OS X Lion, который устанавливает Basic Auth на сервере Apache?

    Поддерживать имена файлов в виде отдельных аргументов в последовательных командах

    Как заблокировать сайт https facebook с помощью iptables

    не может определить команду, которая выполняет команду Explore

    Перенаправить stdout и stderr и переопределить опцию noclobber

    выполнить ac prog в фоновом режиме с помощью сценария оболочки

    Как подавить эхо функции проверки ошибок

    неправильный тип fs, неправильная опция, плохой суперблок при попытке монтировать восстановленный том

    Что такое код ошибки 68 для msmtp и какие проблемы могут спровоцировать его?

    Как подключиться к файлу и к консоли

    mv: target 'hadoop /' не является каталогом

    Есть ли способ контролировать порт зарядки аккумулятора ноутбука?

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