作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用多个 bash session ,我想在一个文件中跟踪所有这些 session 的历史记录(我不关心它是从多个 session 中复用的,我总是可以在它前面放一个 session 标识符。 ) 我试过做
shopt -s histappend
同时添加
history -a
到 $PROMPT_COMMAND
变量。但是它们都不适合我,而且我不明白为什么它们不起作用(据我所知,它们的行为非常不确定......有时它们会从多个 session 中复用命令,有时它们不会).
这个问题的目的是探索一种替代方法来保留所有 session 的历史记录,我可以控制我写入历史记录的内容。这个想法是将“上一个命令”存储在一个 shell 变量中,然后将该变量回显到 PS1
变量定义内的历史日志文件中。
问题是:如何在 shell 变量中获取“先前执行的命令”。我知道我可以执行 echo !! >> logfile.txt
在交互式 bash session 中将其记录到日志文件中。但是我如何在脚本文件(或 .bashrc 文件)中执行此操作?
我试过了
PROMPT_COMMAND="PC=$_;"
PREVIOUS_COMMAND=$(echo $PC) # $_ only gives the last argument of previous command
export PS1="[\u@\h \w] [$PREVIOUS_COMMAND $(echo $_) $_] $ "
但是这些都不起作用。
谢谢你的时间,~瑜珈
最佳答案
有点像
fc -ln -1
应该可以。也就是说,您可能会遇到并发访问问题(阅读:多个 shell 会覆盖彼此的历史记录)并且您可能无法通过手动方式做得更好。
关于bash - 如何在 bash 脚本中获取 "previous executed command"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6756360/
我是一名优秀的程序员,十分优秀!