在bash脚本中获取上一条执行的命令名称

4
在bash脚本中,我想要获取终端中执行的最后一个命令的名称,并将其存储在变量中以备后用。我知道!:0在bash脚本中不起作用,我正在寻找一些替代方法。 例如:
#user enters pwd
> pwd
/home/paul
#I call my script and it show the last command
> ./last_command
pwd 

这并没有帮助,它只是打印了空行。 从脚本获取上一次执行的命令
2个回答

3
告诉shell不断将命令追加到历史记录文件中: export PROMPT_COMMAND="history -a" 将以下内容放入脚本中:
#!/bin/bash

echo "Your command was:"
tail -n 1 ~/.bash_history

只有一件事情,如果我理解正确的话,历史记录是用户作用域的。也就是说,如果您使用用户切换运行某些命令,那么在原始用户历史记录中,您可能只能找到切换到用户的记录,而找不到在新用户下运行的命令(如您可以看到bash_history文件路径中的 ~)。 - xxxvodnikxxx
我明白,尽管我不确定原帖作者是否想考虑切换用户的情况。 - Fabio A. Correa
1
没错,我不在乎,我是为自己编程的 :) - Pavlo Kovalov

0

就编程而言,我在我的.bashrc文件中受益良多;

export HISTCONTROL=ignoredups:erasedups

然后,在控制台或脚本中分别执行以下操作:

history 2

cm=$(history 1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接