问题描述
我必须制作一个脚本,以打印用户使用的所有命令。因此,我尝试制作一个在后台运行的脚本,该脚本删除历史记录并注册从那一刻起运行的每个命令,并将其回显到文件中。这是我做的,但是不起作用。
function add_new_command() {
nr=$(history | wc -l)
if [ $nr -eq 1 ]; then
comanda=$(history | head -n 1)
echo $comanda > mycommands
history -c
fi
}
history -c
while true
do
add_new_command
done
解决方法
更好的方法是使用内置变量来控制历史记录。
history -c
BASH_HISTORY=mycommands
,
我进行了更改,我认为它现在可以工作。我在〜/ .bashrc中添加了下2行:
shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
现在来自1个以上终端的所有命令都立即复制到〜/ .bash_history中。所以我要做的就是复制该文件。