Сбросить историю внутри сценария bash [дубликат]

Я хочу создать сценарий bash, который очищает историю, т.е. работает аналогично команде

history -c

Итак, я начал со следующего кода: -

#!/bin/bash
history     #displaying history
history -c  #clearing history

Ни один из них не работал. При поиске я узнал, что bash по умолчанию отключает историю в неинтерактивных оболочках, но мы можем включить ее. Итак, после редактирования я попробовал следующий код: -

#!/bin/bash
HISTFILE=~/.bash_history   # Or wherever you bash history file lives
set -o history             # enable history
history
history -c

Он показывает результат: -

[root@localhost lib]# bash a.sh
1  history
[root@localhost lib]#

И, кроме того, команда hisory -c не работала.Потому что я все еще получаю историю команд, когда набираю историю. Это означает, что и history , и history -c не работали внутри сценария bash.

Как нам тогда его использовать?

РЕДАКТИРОВАТЬ 1 - Я хочу удалить историю текущего сеанса, она должна где-то храниться. Я пробовал использовать следующие команды, но безрезультатно: -

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


cat /dev/null > ~/.bash_history

P.S. - Это не повторяющийся вопрос. Пожалуйста, постарайтесь понять разницу, прежде чем отмечать ее как дубликат. Я хочу очистить историю текущего сеанса с помощью скрипта. Меня не волнует, будет ли это написано или что-то в этом роде. Другой вопрос об удалении истории навсегда. Это не имеет никакого отношения к скрипту или через другой терминал.

1
задан 3 October 2014 в 13:40

2 ответа

Вы не можете удалить историю как это, как она удалит историю текущей сессии.

, Если Вы бледный для очистки истории с помощью использования сценария после команды в сценарии

> ~/.bash_history

достаточно очистить всю историю удара.

1
ответ дан 11 November 2019 в 02:35

Я думаю, что

history -c 

только очистит историю в seesion, связанном со сценарием Этот пример:

#!/bin/bash
HISTFILE=~/.bash_history   # Or wherever you bash history file lives
set -o history             # enable history
uname -a > /dev/null
history
history -c
history

шоу вывод:

....
500  history
501  uname -a > /dev/null
502  history
4  history

, который является тем, что каждый ожидает.

, Если Вы хотите стереть историю, попробуйте

> $HISTFILE
0
ответ дан 11 November 2019 в 02:35

Другие вопросы по тегам:

Похожие вопросы: