Как внутри функции получить имя файла любого скрипта, вызывающего эту функцию?
В расширении подсказки %x
указывает имя файла, определяющего функцию. %N
предоставляет имя функции. Как получить имя файла, который вызвал функцию?
Было бы полезно сообщить о времени выполнения каждого из моих сценариев запуска, например:
~/.zshenv:
function start_timer() {
start_time=$(date +%s.%N)
}
function stop_timer() {
stop_time=$(date +%s.%N)
elapsed_time=$((stop_time-start_time))
echo "$SCRIPTNAME took $elapsed_time seconds"
}
start_timer
# initialize env...
end_timer # "~/.zshenv took 0 seconds"
~/.zshrc:
start_timer
# initialize interactive shell...
end_timer # "~/.zshrc took 2 seconds"
~/.zlogin:
start_timer
# initialize login shell...
end_timer # "~/.zlogin took 2 seconds"