🥶
Size: a a a
аᶘ
ł
[10:06] $Если я в 10:08 выполняю команду, я хочу, чтобы промпт обновился и написал мне
[10:08] $ commandИ только потом побежал выполняться
аᶘ
[10:06] $Если я в 10:08 выполняю команду, я хочу, чтобы промпт обновился и написал мне
[10:08] $ commandИ только потом побежал выполняться
∀
[10:06] $Если я в 10:08 выполняю команду, я хочу, чтобы промпт обновился и написал мне
[10:08] $ commandИ только потом побежал выполняться
ł
∀
[10:06] $Если я в 10:08 выполняю команду, я хочу, чтобы промпт обновился и написал мне
[10:08] $ commandИ только потом побежал выполняться
# change time in prompt to command execution time
# don't work properly in `set -x` mode
function debug_trap() {
local lockfile="/dev/shm/aludebugtrap.$$.lock"
[[ -f "$lockfile" ]] && return 0
touch "$lockfile"
local LAST_COMMAND="$(history 1 | sed 's/[^\|]\+ | //')"
local LAST_COMMAND_WIDTH=$(echo -n "$LAST_COMMAND" | wc -c)
local PROMPT_WIDTH=$(echo -n "${PS1@P}" | sed -e "s/\x1b\[.\{1,5\}m//g;s/\x01\x02//g" | wc -c)
# small hack to exit without saving history and don't leave the lockfile
[[ "$LAST_COMMAND" == 'kill -9 $$' ]] && rm -f "$lockfile"
#local TWIDTH=$(tput cols)
#local n=$(( ($PROMPT_WIDTH + $LAST_COMMAND_WIDTH - 1) / $TWIDTH + $(wc -l <<< "$LAST_COMMAND")))
local n=$(( ($PROMPT_WIDTH + $LAST_COMMAND_WIDTH - 1) / $COLUMNS + $(wc -l <<< "$LAST_COMMAND")))
echo -e "\e[${n}A\r\e[32m[$(date +"%T")]\e[39m$([[ $n -le 1 ]] || echo "\e[$((n-1))B")"
return 0
}
trap debug_trap DEBUG
ł
ł