2017-09-06 17 views
1

(Shell腳本)從當前時間數字的設定值(Shell腳本)從當前時間數的設置值

我試着做一個shell腳本採取從當前時間(HH輸出:MM )併爲每個數字0-9分配一個變量(字體)。這本質上是一個時鐘,我需要實時運行(時間變化時更改)。例如,如果我運行此命令:

date +"%T" 

我會得到一個輸出(結果可能會有所不同):

12:30:27 

我怎樣才能使它如此相反,它會輸出這個(沒有「秒」 )

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

我能想到實現這一目標的唯一方法是通過分配數字與正在使用的字體。以我使用的字體的鏈接是:

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

反正我可以輸出使用數字像這樣的時間(實時)?

+0

也許'男人約會'會指出你在正確的方向。除了%T之外,還有更多選項用於輸出格式。許多許多更多。 – JNevill

回答

2

要顯示實時ASCII藝術鍾,用

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

保存當前的時間變量,可以使用

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

當我運行這個,它可以工作,但它進入它自己的過程,我不得不按Ctrl + C退出。有沒有辦法解決這個問題? – iamr00t

+0

我以爲你想要一個獲得更新的實時掛鐘。但是,如果你只想要一個單一的時間戳,只需運行它,而不需要「手錶」。 – jil

+0

我做了,我只是想知道它是否可以在不需要Ctrl + C退出它的腳本內查看 – iamr00t

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"