Выходной трубопровод рано в случае сбоя команды

Для поиска ВСЕХ ссылок у меня сработало:

find -L . -name \*.txt
2
04.12.2018, 04:08
1 ответ

Вам нужны две функции и таймер. Первая функция выполняется сразу после того, как вы нажмете Enter в командной строке, но до того, как запустится фактическая команда. Вторая функция выполняется после завершения команды, но до отображения подсказки. Таймер просто считает секунды с момента запуска оболочки. В zshэти три крюка называются соответственно precmd, preexecи SECONDS.

В bashимя таймера такое же, функция precmdстановится переменной PROMPT_COMMAND, но, к сожалению, функция preexecотсутствует, поэтому вам нужно написать ее самостоятельно (ничего сверх сложного, но и не тривиально либо ), либо установить уже написанный хук из внешнего источника, напримерhttps://github.com/rcaloras/bash-preexec.

Теперь нам просто нужно склеить все части вместе, минимальный код выглядит так:

preexec() {
    cmd_start="$SECONDS"
}

precmd() {
  local cmd_end="$SECONDS"
  elapsed=$((cmd_end-cmd_start))
  PS1="$elapsed "
}

Поместите все в .bashrc.

4
27.01.2020, 22:02

Теги

Похожие вопросы