Объясните, почему .bash_logout не запускает команды?

Поэтому мне было интересно, как запускать эти две строки кода каждый раз, когда я закрываю открытый экземпляр терминала:

history -c cat /dev/null > ~/.bash_history 

Я export HISTFILE=5 при запуске, но все равно хочу export HISTFILE=5 , когда закончите.

Я попытался немного оглядеться в нескольких местах , и мне не повезло .

Я запускаю Linux Mint, и также хотел бы отметить здесь, что у меня возникла аналогичная проблема с .bash_profile ; В конце концов, я обнаружил, что мне нужно разместить весь код запуска в .bashrc , так что, возможно, это имеет какое-то отношение к нему. Вот мой файл .bash_logout :

 #!/bin/bash # ~/.bash_logout: executed by bash(1) when login shell exits. #this does nothing on exit... echo 'logout'; sleep 2s # when leaving the console clear the screen to increase privacy if [ "$SHLVL" = 1 ]; then history -c cat /dev/null > ~/.bash_history [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q fi 

Я попытался переустановить этот сценарий многими способами, я не уверен, не понимаю ли я, как работает bash, и если что-то из этого работает в первую очередь. Является ли тот факт, что я запускаю Xserver сделать bash рассмотрением терминалов что-то, что не является выходом при выходе?

Он говорит, что я не вошел в систему, и это имело бы смысл:

 $> shopt login_shell login_shell off 

  • Как отключить энергосбережение на аудиовыходах сабвуфера Lenovo Y50?
  • Ноутбук становится горячим при использовании Linux Mint
  • Линукс Mint MATE Caja «Share Folder ...» отсутствует
  • Как удалить linux mint?
  • Как я могу исправить поисковую систему по умолчанию в Chromium на Linux Mint 11?
  • Установка корицы
  • Настройка яркости дисплея ноутбука не работает в Linux Mint 14
  • Как получить список идентификаторов процессов в системе в командной строке linux?
  • 2 Solutions collect form web for “Объясните, почему .bash_logout не запускает команды?”

    Предполагая, что вы подтвердили, что это оболочка для входа ( shopt login_shell ):

    ~ / .bash_logout запускается только в том случае, если вы явно выходите из оболочки с exit или exit logout или набрав Control-D для ввода конца файла в командной строке. Если вы закроете эмулятор терминала, процессы отправляются SIGHUP, а bash в этом случае не запускает ~ / .bash_logout.

    Если вы хотите выполнять работу в любое время, когда выходите из bash (и является ли это оболочкой входа или нет), используйте trap foo EXIT . Самый удобный способ сделать это – поместить ваш код в функцию оболочки, например:

     print_goodbye () { echo Goodbye; } trap print_goodbye EXIT 

    ~/.bash_logout запускается только с помощью оболочки входа (например, той, которую вы получаете на сеансах tty, или с помощью bash -l ). Он игнорируется не-login-оболочками, которые запускаются большинством терминалов.

    Более подробную информацию см. На странице руководства bash (1) в разделе «INVOCATION».


    Если вы не хотите сохранять постоянную историю, просто HISTFILE или установите HISTFILE=/dev/null . Это автоматически отменит историю при выходе, сохраняя при этом ее текущую оболочку ( HISTSIZE=100 ).

    Interesting Posts

    Режим Windows XP с двумя мониторами – приложения не отображаются правильно

    Используя статический IP-адрес при доступе к Интернету через беспроводную сеть (wifi)

    Комбинация клавиш быстрого доступа Outlook для перемещения сообщения в другую папку

    Что такое Rosetta и почему Snow Leopard не включает в себя это по умолчанию?

    Как открыть окно команд из библиотеки документов?

    Как я могу присвоить команду sudo?

    Как я могу расширить окно командной строки Windows 7?

    Git – Список всех файлов, находящихся под контролем источника?

    Странное явление о первичной и вторичной DNS-скорости моего ПК

    Flash переопределяет ярлыки клавиш Firefox – как отключить это?

    Ошибка Windows 7 Home Premiume 2203

    Как остановить Windows 10 от автоматического перезапуска

    Профили сетевых настроек Windows 7

    DVD-ROM хранится в случайном порядке, особенно при запуске Windows Explorer

    Массовое преобразование .xls и .xlsx в .txt (вкладка с разделителями) на Mac

    Давайте будем гением компьютера.