그만큼 timer_stop 함수는 또한 타이머를 사람이 읽을 수 있는 형식으로 변환하는 작업을 수행하며 아마도 필요한 것보다 더 복잡할 것입니다. 하지만 나는 개발자가 아니기 때문에 Past Lee는 몇 시간 동안 예제를 검색한 후에 이것이 결정되었습니다.
나 같은 사람들을 위해 물고기에서 해보기
Linux 호스트 중 하나에 ssh로 접속했지만 MacOS에서는 fish를 실행하는 경우 bash를 위한 것입니다. 동일한 결과를 얻기 위한 별도의 물고기 기능이 있으며, 측정값을 사람이 읽을 수 있는 형식으로 바꾸는 총체적인 해킹이 포함되어 있습니다. 나는 이 코드를 만들었고, 나는 사과하지 않습니다. 내 자갈이 함께 쌓인 StackOverflow 소스 kludge를 목격하십시오.
function fish_prompt --description 'Write out the prompt'
# Save the last status
set -l last_status $status
# Calculate the command duration if available
set -l cmd_duration ""
if set -q CMD_DURATION
# Convert milliseconds to microseconds for more precise comparison
set -l duration_us (math "$CMD_DURATION * 1000")
# Calculate different time units
set -l us (math "$duration_us % 1000")
set -l ms (math "floor($duration_us / 1000) % 1000")
set -l s (math "floor($duration_us / 1000000) % 60")
set -l m (math "floor($duration_us / 60000000) % 60")
set -l h (math "floor($duration_us / 3600000000)")
# Format duration string
if test $h -gt 0
set cmd_duration (string join '' "(" $h "h" $m "m)")
else if test $m -gt 0
set cmd_duration (string join '' "(" $m "m" $s "s)")
else if test $s -ge 10
set -l fraction (math "floor($ms / 100)")
set cmd_duration (string join '' "(" $s "." $fraction "s)")
else if test $s -gt 0
set cmd_duration (string join '' "(" $s "." (printf "%03d" $ms) "s)")
else if test $ms -ge 100
set cmd_duration (string join '' "(" $ms "ms)")
else if test $ms -gt 0
set -l fraction (math "floor($us / 100)")
set cmd_duration (string join '' "(" $ms "." $fraction "ms)")
else
set cmd_duration (string join '' "(" $us "us)")
end
end
# Define unicode symbols for status
set -l checkmark "✓"
set -l cross "✗"
# Colors
set -l normal (set_color normal)
set -l dark_gray (set_color 555555)
set -l blue (set_color -o blue)
set -l red (set_color red)
set -l green (set_color green)
set -l purple (set_color -o purple)
# First line
echo # New line
echo -n -s $dark_gray "("(date +%T)") $last_status " # Time in brackets and exit status
# Status indicator with exit status
if test $last_status -eq 0
echo -n -s $green $checkmark
else
echo -n -s $red $cross
end
# Actually echo the duration
echo -n -s $dark_gray " $cmd_duration"
# Do the rest of the prompt
echo
set -l host_color $purple
echo -n -s $host_color $USER "@" (prompt_hostname) $normal ":" $blue (prompt_pwd) $normal " \$ "
end
다양한 색상
ANSI BBS 그래픽에 몰두하면서 어린 시절을 보낸 덕분에 버튼만 누르고 있는 평균적인 심술궂은 관리자보다 터미널에 있는 다채로운 텍스트를 좀 더 좋아하게 되었을 것입니다. 보세요, 어떤 사람들은 일반적으로 구문 강조와 색상이 이해력을 떨어뜨리고 훑어보는 것을 장려한다고 생각한다는 것을 알고 있습니다. 하지만 제가 무슨 말을 할 수 있겠습니까? 나는 그들을 사랑하고 의지합니다. 아마도 내가 너무 많이 훑어본 것 같지만, 그렇군요. 내 차갑고 죽은 손에서 다채로운 껍질 도구를 가져갈 수 있습니다.
이를 위해 저는 GRC(Generic Colorizer용)라는 작은 프로그램을 사용하여 다른 도구에 강조 표시와 색상을 추가합니다. 광범위하게 사용 가능하며 추가 구성 없이 작동합니다.

색상이 조금 달라도 문제 없습니다!
리 허친슨
색상이 조금 달라도 문제 없습니다!
리 허친슨

색상이 조금 달라도 문제 없습니다!
리 허친슨
약간의 앨리어싱이 있습니다. .bash_aliases 좋은 시민처럼) 몇 가지 일반적인 명령에서 다채로운 출력을 기본값으로 설정하려면 다음을 수행하십시오.
alias ls="ls --color=auto"
alias ll="ls -AlFh --group-directories-first"
alias df="grc df -h"
alias du='grc du -h'
alias free="grc free -h"
alias ping='grc ping'
alias traceroute="grc traceroute"
alias ip='grc ip'
나는 또한 내 숫자를 사람이 읽을 수 있도록 만드는 것을 좋아합니다. -h 따라서 스위치는 자유롭게 적용됩니다.
(다음과 같은 명령을 래핑한다는 점에 유의하십시오. ip GRC에서는 출력을 다른 것으로 파이프하는 경우 때때로 이상한 일을 할 수 있습니다. 주의하세요. 아니면 하지 마세요! 네 컴퓨터야, 너 자신을 쓰러뜨려라!)
터미널 자체
눈썰미가 있는 독자라면 훨씬 더 나은 옵션이 있음에도 불구하고 터미널 프로그램에 MacOS의 Terminal.app을 사용하고 있다는 스크린샷을 보면 알 수 있을 것입니다. 내가 가지고 있는 변명은 내가 Terminal.app에 익숙하고 아무것도 나를 끌어내리지 못했다는 것입니다. 나는 일반적인 용의자(Ghostty, Alacritty, 멋진 tmux 창 통합 기능을 갖춘 강력한 iTerm2, 심지어 Warp와 같은 터미널 경험을 새롭게 재해석한 제품)를 테스트해 보았습니다.
이 주제에 대해 더 알고 싶다면 아래를 참고하세요