傳回 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=""

相關內容