
Похоже на это:Возврат последней команды, выполненной в скрипте оболочки.
lastCommand=$(some command here)
Можно ли добиться того же результата, но использовать его внутри функции bash, а не скрипта bash?
ПС
lastCommand
означает предыдущую командувнутрифункция.
Достаточно решения Bash 4.2+.
решение1
Вы можете использовать xtrace
, например, set -x
чтобы получить историю всех команд, выполняемых оболочкой:
настраивать:
xtracefile=$(mktemp)
exec 9>"$xtracefile"
BASH_XTRACEFD=9
set -x
затем запустите что угодно
foo() { echo foo; echo bar; }
foo
Теперь $xtracefile
должно содержать строки
+ echo foo
+ echo bar
и вы можете работать с этим, чтобы выбрать все, что хотите. Обратите внимание, что это не очищает и не убирает файл в какой-либо момент, он будет расти бесконечно.
Если вы хотите избавиться от +
знаков, назначьте PS4=""
.