47 lines
1.2 KiB
Bash
47 lines
1.2 KiB
Bash
|
#!/bin/bash
|
|||
|
|
|||
|
state=0
|
|||
|
sleep_pid=0
|
|||
|
|
|||
|
function toggle() {
|
|||
|
state=$(((state+1)%3))
|
|||
|
|
|||
|
if [ "$sleep_pid" -ne 0 ]; then
|
|||
|
kill $sleep_pid >/dev/null 2>&1
|
|||
|
fi
|
|||
|
}
|
|||
|
|
|||
|
trap "toggle" USR1
|
|||
|
|
|||
|
function bclock() {
|
|||
|
local row0=("⠀" "⠈" "⠐" "⠘" "⠠" "⠨" "⠰" "⠸" "⢀" "⢈")
|
|||
|
local row1=("⠁" "⠉" "⠑" "⠙" "⠡" "⠩" "⠱" "⠹" "⢁" "⢉")
|
|||
|
local row2=("⠂" "⠊" "⠒" "⠚" "⠢" "⠪" "⠲" "⠺" "⢂" "⢊")
|
|||
|
local row3=("⠃" "⠋" "⠓" "⠛" "⠣" "⠫" "⠳" "⠻" "⢃" "⢋")
|
|||
|
local row4=("⠄" "⠌" "⠔" "⠜" "⠤" "⠬" "⠴" "⠼" "⢄" "⢌")
|
|||
|
local row5=("⠅" "⠍" "⠕" "⠝" "⠥" "⠭" "⠵" "⠽" "⢅" "⢍")
|
|||
|
local chars=("${row0[@]}" "${row1[@]}" "${row2[@]}" "${row3[@]}" "${row4[@]}" "${row5[@]}")
|
|||
|
|
|||
|
local hour=$(date +"%H")
|
|||
|
local minute=$(date +"%M")
|
|||
|
local second=$(date +"%S")
|
|||
|
[[ $hour = 0* ]] && hour=${hour:1:1}
|
|||
|
[[ $minute = 0* ]] && minute=${minute:1:1}
|
|||
|
[[ $second = 0* ]] && second=${second:1:1}
|
|||
|
|
|||
|
echo " ${chars[$hour]} ${chars[$minute]} ${chars[$second]}"
|
|||
|
}
|
|||
|
|
|||
|
while true; do
|
|||
|
if [ $state -eq 0 ]; then
|
|||
|
bclock
|
|||
|
elif [ $state -eq 1 ]; then
|
|||
|
echo " $(date +'%H:%M:%S')"
|
|||
|
else
|
|||
|
echo " $(date +'%a, %m/%d/%Y')"
|
|||
|
fi
|
|||
|
sleep 1 &
|
|||
|
sleep_pid=$!
|
|||
|
wait
|
|||
|
done
|