Назад | Перейти на главную страницу

HISTCONTROL = ignoreboth не работают debian lenny

Может ли кто-нибудь подтвердить, что установка следующих переменных env в debian lenny приведет к тому, что предыдущие записи истории не будут сохранены. GNU bash, версия 3.2.39 (1) -релиз

export HISTCONTROL=ignoreboth
export HISTSIZE=500

Я добавил их в свой /etc/bash.bashrc но я продолжаю получать повторяющиеся команды.

Опции «ignoreboth» и «ignoredups» только предотвращают добавление дубликатов непосредственно предшествующей команды в историю. Предыдущие дубликаты не действуют.

$ echo $HISTCONTROL
ignoreboth
$ echo a
a
$ echo b
b
$ echo b
b
$ echo a
a
$ history 4
1047  echo a
1048  echo b
1049  echo a
1050  history 4

Как вы видете echo a появляется дважды и echo b появляется один раз.

Возможно, вы ищете вариант «стирания».

$ echo $HISTCONTROL
ignoreboth:erasedups
$ echo c
c
$ echo d
d
$ echo d
d
$ echo c
c
$ history 4
1076  echo $HISTCONTROL
1077  echo c
1078  echo d
1079  history 4

Здесь оба echo c и echo d появляются только один раз.

Попробуйте использовать ignoredups вместо ignoreboth, добавьте его в файл / etc / profile.

Уникально записывать каждую новую команду сложно. Сначала вам нужно добавить к ~/.profile или похожие:

HISTCONTROL=erasedups
PROMPT_COMMAND='history -w'

Тогда вам нужно добавить в ~/.bash_logout:

history -a
history -w