如何在bash脚本中获取“之前执行的命令”?

我使用多个bash会话,我想在一个文件中跟踪所有这些历史记录(我不关心它是从多个会话多路复用,我总是可以在它前面放置一个会话标识符.)我有试着做
shopt -s histappend

并且还添加@H_301_4@

history -a

到$PROMPT_COMMAND变量.但是它们都没有真正适合我,我不明白为什么它们不起作用(就我所知,它们表现得非常不确定……有时它们会从多个会话中复用命令,有时它们不会).@H_301_4@

这个问题的目标是探索另一种方法来保持所有会话的历史记录,在那里我可以控制我写入历史记录的内容.我们的想法是将“prevIoUs command”存储在shell变量中,然后将该变量回显到PS1变量定义中的history-log文件中.@H_301_4@

问题是:如何在shell变量中获取“先前执行的命令”.我知道我可以执行回声!! >>交互式bash会话中的logfile.txt将其记录到日志文件中.但是如何在脚本文件(或.bashrc文件)中执行此操作?@H_301_4@

我努力了@H_301_4@

PROMPT_COMMAND="PC=$_;"
PREVIoUS_COMMAND=$(echo $PC)  # $_ only gives the last argument of prevIoUs command
export PS1="[\u@\h \w] [$PREVIoUS_COMMAND $(echo $_) $_] $"

但这一切都无效.@H_301_4@

谢谢你的时间,
〜瑜伽士@H_301_4@

就像是
fc -ln -1

应该管用.也就是说,您可能遇到并发访问问题(阅读:多个shell覆盖彼此的历史记录),您可能无法手动做得更好.@H_301_4@

相关文章

普通模式 >G 增加当前行到文档末尾处的缩紧层级 $ 移动到本行的末尾 . 相当于一个...
原文连接: https://spacevim.org/cn/layers/lang/elixir/ 模块简介 功能特性 启用模块 快捷键 语言专属...
原文连接: https://spacevim.org/cn/layers/lang/dart/ 模块简介 功能特性 依赖安装及启用模块 启用模...
 =   赋值操作符,可以用于算术和字符串赋值 +        加法计算     -        减法运算...
1.根据包名来查看指定的APP指定数据 adb shell "top | grep com.xxx.xxx" 由于这样打印出来的数...
ctrl+F 向下翻页 ctrl+B 向下翻页 u 取消最近一次操作 U 取消当前行的操作 ZZ 保存当前内容并退出 gg 跳...