Внутри функции, как я могу получить имя файла для любого скрипта, называемого этой функцией?zsh: получить имя файла скрипта, вызвавшего функцию
Через быстрое расширение, %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"
Здесь [очень похожий вопрос] (http://stackoverflow.com/questions/9901210), но также нет реального решения. – Lucas