Intereting Posts
DNSMASQ отказывается начинать с «неизвестной ошибки интерфейса», даже несмотря на то, что интерфейс MySQL убивается ОС каждые 25 дней или около того Использование ядро ​​Linux для использования на встроенной системе Как я могу выполнить вывод tar через mv? Есть ли программное обеспечение нормализации звука для OS, совместимое с Linux mint 18? Ядро и пользовательское пространство Системные вызовы Bash говорит, что файл не найден, когда `ls` и` dir` перечисляют его Тип файловой системы и параметры монтирования для Archlinux на накопителе SSD NVMe Скрипт для запрета IP-адресов, которые пытаются ввести root на сервере Удаление первого пространства в строке Переключение выходных стоков / движущихся аудиопотоков – но некоторые приложения по-прежнему используют старую раковину! Как изменить значение строки, хранящейся в переменной, со значением из другой переменной? Изменение с помощью команды iptables не отражается в выводе команды netstat Получение U-Boot для загрузки dtb из изображения FIT Я хочу разделить сумму чисел на значение

Запись сеанса «скрипт» заставляет меня выйти дважды

Я использую описанное здесь решение для регистрации сеансов моей оболочки, добавив это в конец /etc/bash.bashrc :

 test "$(ps -ocommand= -p $PPID | awk '{print $1}')" == 'script' || (script -f /var/log/shellog/$USER-$(date -u +%Y.%m.%d-%H:%M:%S).${HOSTNAME:-$(hostname)}.$$.log) 

Это прекрасно работает, однако, когда я выхожу из оболочки, я должен выйти дважды: один раз из скрипта и один раз из оболочки:

 Last login: Wed Aug 6 12:43:29 2014 from ***** Script started, file is /var/log/shellog/camilstaps-2014.08.06-10:43:40.cs.localdomain.16048.log camilstaps@cs:/$ exit exit Script done, file is /var/log/shellog/camilstaps-2014.08.06-10:43:40.cs.localdomain.16048.log camilstaps@cs:/$ exit exit 

Я нашел это и попытался изменить строку в /etc/bash.bashrc соответственно, но это ничего не меняет:

 test "$(ps -ocommand= -p $PPID | awk '{print $1}')" == 'script' || (script -f /var/log/shellog/$USER-$(date -u +%Y.%m.%d-%H:%M:%S).${HOSTNAME:-$(hostname)}.$$.log && exit) 

Полагаю, это потому, что я должен test что я уже не в script (без test он продолжает создавать новый script ). Но как я могу сделать, что мне не нужно выходить дважды?

Как просили. Следующее должно работать

 [[ $(ps -ocommand= -p $PPID | awk '{print $1}') = script ]] || { script -f /var/log/shellog/$USER-$(date -u +%Y.%m.%d-%H:%M:%S).${HOSTNAME:-$(hostname)}.$$.log && exit ;}