Я хочу создать сценарий 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. - Это не повторяющийся вопрос. Пожалуйста, постарайтесь понять разницу, прежде чем отмечать ее как дубликат. Я хочу очистить историю текущего сеанса с помощью скрипта. Меня не волнует, будет ли это написано или что-то в этом роде. Другой вопрос об удалении истории навсегда. Это не имеет никакого отношения к скрипту или через другой терминал.
Вы не можете удалить историю как это, как она удалит историю текущей сессии.
, Если Вы бледный для очистки истории с помощью использования сценария после команды в сценарии
> ~/.bash_history
достаточно очистить всю историю удара.
Я думаю, что
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