В .zshrc
у меня есть следующий код
function vcs_info_wrapper() {
vcs_info
... # parse $vcs_info_msg_0_ and return info on checkout
}
. Я попытался ограничить выполнение vcs_info
до 500 мс и изящно обработать время ожидания следующим образом:
timeout 0.5s vcs_info
if [ $? -eq 124 ]; then
echo "timed out"
else
... # parse $vcs_info_msg_0_ and return info on checkout
fi
но это не с ошибкой, что команда vcs_info
не существует (это функция). Я попытался поместить его в отдельный файл оболочки vcs_info.sh:
autoload -Uz vcs_info
vcs_info
и назвать его так
timeout 0.5s source $HOME/scripts/vcs_info.sh
, но это также не удается, поскольку source
также не является команда. Наконец, мне удалось сделать это не сбоем:
timeout 0.5s zsh -c 'source $HOME/scripts/vcs_info.sh'
, но теперь $vcs_info_msg_0_
поглощен подоболочком zsh.
Пожалуйста, помогите мне установить ограничение на выполнение функций и корректно обрабатывать таймауты.