(Shell脚本)设置当前时间的数字值

时间:2017-09-06 19:25:25

标签: bash shell time

(Shell脚本)设置当前时间的数字值

我试图让shell脚本从当前时间(HH:MM)获取输出,并为每个数字0-9分配一个变量(字体)。这基本上是一个时钟,我需要实时运行(当时间变化时改变)。例如,如果我运行此命令:

12:30:27

我会得到一个输出(结果可能会有所不同):

  _ ____        _____  ___  
 / |___ \   _  |___ / / _ \ 
 | | __) | (_)   |_ \| | | |
 | |/ __/   _   ___) | |_| |
 |_|_____| (_) |____/ \___/ 

我怎样才能这样做而不是输出它(没有"秒")

if (largest1 >= largest2)
    return largest1;

else if (largest2 > largest1)
    return largest2;

我能想到实现这一目标的唯一方法是单独使用正在使用的字体分配数字。我正在使用的字体的链接是:

http://patorjk.com/software/taag/#p=display&f=Standard&t=12%20%3A%2030

无论如何,我可以使用这样的数字输出时间(实时)吗?

3 个答案:

答案 0 :(得分:2)

要显示实时ASCII艺术时钟,请使用

watch 'date "+%H:%M" | figlet'

要将当前时间保存在变量中,请使用

myVariable="$(date "+%H:%M" | figlet)"

答案 1 :(得分:0)

只要您的光标不在屏幕底部,并且您在支持这些光标运动的终端模拟器中:

#!/bin/sh


f() { echo -n "\\033[$1D\\033[1B"; } 
_c="  _$(f 2)(_)$(f 2)_$(f 2)(_)$(f 1) "
_0="  ___$(f 4)/ _ \\ $(f 7)| | | |$(f 7)| |_| |$(f 6)\\___/  "
_1=" _$(f 2)/ |$(f 3)| |$(f 3)| |$(f 3)|_| "
_2=" ____$(f 5)|___ \\ $(f 5)__) | $(f 7)/ __/  $(f 8)|_____| "
_3=" _____$(f 6)|___ / $(f 7)  |_ \\ $(f 7) ___) | $(f 9)|____/  "
_4="  _  _   $(f 10) | || |   $(f 10) | || |_  $(f 10) |__   _| $(f 7) |_|   "
_5="  ____   $(f 9) | ___|  $(f 9) |___ \  $(f 9)  ___) | $(f 9) |____/  "
_6="  __    $(f 9) / /_   $(f 9)| '_ \  $(f 9)| (_) | $(f 9) \___/  "
_7=" _____ $(f 9) |___  | $(f 9)    / /  $(f 9)   / /   $(f 9)  /_/   "
_8="  ___  $(f 9) ( _ ) $(f 9) / _ \ $(f 9)| (_) |$(f 9) \___/  "
_9="   ___  $(f 9)  / _ \ $(f 9) | (_) |$(f 9)  \__, |$(f 7)   /_/  "

eval echo -e '"'$(date +"%T" | tr : c | cut -b 1-5 | sed 's/./${_&}\\033[4A/g')'"'
echo -e "\\033[5B"

答案 2 :(得分:0)

试试这个:

Host@User> date +"%H:%M"
09:47
Host@User>