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

Вот несколько команд, которые я пробовал.

# avoid duplicates..
export HISTCONTROL=ignoredups:erasedups  
# append history entries..
shopt -s histappend

# After each command, save and reload history
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"

Также попробовал:

export HISTCONTROL=ignoredups:erasedups  # no duplicate entries
export HISTSIZE=100000                   # big big history
export HISTFILESIZE=100000               # big big history
shopt -s histappend                      # append to history, don't overwrite it

# Save and reload the history after each command finishes
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

1 ответ1

0

Вы можете использовать ловушки, чтобы сделать это.

например, поместите что-то вроде этого в ваш .bash_profile:

function save_history
{
    ~/.bash_history >> ~/mybackup_history.txt
}
trap save_history EXIT

Ссылки на дополнительные ресурсы в ловушках

Некоторый фон на заявлениях trap

Сообщение в блоге с большим количеством примеров trap

Глава о ловушках из руководства по написанию сценариев Bash

Unix и Linux Stack обмениваются вопросом о ловушках

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .