在函數內部,如何獲取調用該函數的任何腳本的文件名?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