Bash 可以在执行*开始*时将命令存储在历史记录中吗?

Bash 可以在执行*开始*时将命令存储在历史记录中吗?

命令运行完成后,我的 Bash 会使用PROMPT_COMMAND="history -a; history -c; history -r;".有没有办法(无需修补 Bash 本身、修改我的命令或任何 I/O 副作用,例如echo在运行命令之前执行命令)来保存命令开始运行而不是完成时?

答案1

trap 'history -a; history -c; history -r' DEBUG

将要运行指定的命令

在每个简单命令、for命令、case命令、select命令、每个算术for命令之前以及在 shell 函数中执行第一个命令之前

这确实意味着每一个。输入的命令已经存在于内存历史记录中,并且将会写入磁盘。

相关内容