与此类似:返回 shell 脚本中执行的最后一个命令。
lastCommand=$(some command here)
是否可以达到相同的结果,但在 bash 函数而不是 bash 脚本中使用?
聚苯乙烯
lastCommand
表示上一个命令里面功能。
Bash 4.2+ 解决方案就足够了。
答案1
您可以使用xtrace
, ieset -x
来获取 shell 执行的所有命令的历史记录:
设置:
xtracefile=$(mktemp)
exec 9>"$xtracefile"
BASH_XTRACEFD=9
set -x
然后运行任何东西
foo() { echo foo; echo bar; }
foo
现在$xtracefile
应该包含以下行
+ echo foo
+ echo bar
你可以用它来选择你想要的任何东西。请注意,这不会在任何时候清除或清理文件,它会无限期地增长。
如果您想去掉这些+
符号,请指定PS4=""
。