返回 bash 函数中执行的最后一个命令

返回 bash 函数中执行的最后一个命令

与此类似:返回 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=""

相关内容