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 

  • Добавить один файл в два файла в unix script
  • Переключить пользователя в сценарий оболочки без ввода пароля
  • Как загрузить последний файл с сервера SFTP?
  • Сценарий BASH, представляющий синтаксическую ошибку IF
  • Извлечение времени из журналов с использованием tcl ожидается
  • Быстро проверьте, работают ли многие сетевые хосты
  • Если выражение с двумя переменными - Bash
  • сценарий оболочки для создания каталогов, подкаталогов и файлов по шаблону
  • 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

    Только загрузка GRUB автоматически

    Как узнать, когда выполняется ленивый `umount -l`?

    Как обрабатывать удаленный txt-файл как поток?

    yum при обновлении или установке

    Что такое "Устройство: 802h / 2050d" означает inode?

    automake error: Неэкранированная левая фигурная скобка в регулярном выражении устарела

    восстановление данных после частичного измельчения

    Почему поведение ведет себя странно при написании нескольких целей с использованием символа%?

    Область синтаксиса vim: как использовать строки как шаблоны начала / конца?

    Как загрузить все файлы, перечисленные в массиве?

    Как автоматизировать подключение к нескольким сетевым устройствам, выполнить команду и сохранить вывод в файл?

    Как autoremove с apt?

    Удалить неизвестное количество строк, кроме последней строки

    Установите r5u87x на FreeBSD

    Как установить размер mate-панели через командную строку (а не через dconf)?

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