Bash脚本检测终端中运行的最后一个命令



我必须制作一个脚本来打印用户使用的所有命令。因此,我尝试制作一个在后台运行的脚本,删除历史记录,注册从那一刻起运行的每个命令,并将其回显到文件中。我就是这么做的,但没用。

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中。所以我所需要做的就是复制该文件。

相关内容

  • 没有找到相关文章

最新更新