我必须制作一个脚本来打印用户使用的所有命令。因此,我尝试制作一个在后台运行的脚本,删除历史记录,注册从那一刻起运行的每个命令,并将其回显到文件中。我就是这么做的,但没用。
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"
现在,来自一个以上终端的所有命令都会立即复制到~/.bash_history中。所以我所需要做的就是复制该文件。