時刻に応じた時計の絵文字を表示するshellscript
手元でちょっとしたスクリプトを作っていて時刻に応じた時計の絵文字を表示したくなったので書いた。
時計の絵文字は 30 分刻みであるので、0—30、31—59 の範囲で切り替わる。
#!/bin/sh
function clock_emoji() {
local hour=$1
local mod_hour=$(($hour % 12))
if [ $mod_hour -eq 0 ]; then
local time="1f55B"
else
local hex_hour=$(printf '%x\n' $(echo $((mod_hour - 1))))
local time=$(echo $((16#1f550+16#"$hex_hour")) | xargs printf '%x\n')
fi
local minute=$2
if [ $minute -gt 30 ]; then
local time=$(echo $((16#"$time"+16#c)) | xargs printf '%x\n')
fi
echo "\U$time"
}
clock_emoji $1 $2
Unicode を取得するだけなら
$ ./clock_emoji.sh 03 05
\U1f552
絵文字自体を表示するなら
$ echo -e $(./clock_emoji.sh 03 05)
🕒