如何在不使用任何for或while循环的情况下在linux终端中显示正在运行的时钟。在脚本中使用这些循环,持续时间为1秒,会导致系统负载过重。
答案 0 :(得分:2)
怎么样:
watch -n 1 date
使用watch定期运行命令。
答案 1 :(得分:2)
您可以创建一个使用sleep
:
#!/bin/bash
function showdate(){
printf '\033[;H' # Move the cursor to the top of the screen
date # Print the date (change with the format you need for the clock)
sleep 1 # Sleep (pause) for 1 second
showdate # Call itself
}
clear # Clear the screen
showdate # Call the function which will display the clock
如果您执行此脚本,它将无限期运行,直到您点击CTRL-C
答案 2 :(得分:0)
这篇文章很古老,但对于仍在寻找这种东西的人来说:
#!/bin/bash
printf '\033[;H'
while true; do date; sleep 1; done
这个版本在实现目标的同时避免了递归(和堆栈错误!)。
(为了记录 - 我确实更喜欢 watch
版本,但由于 OP 不喜欢该解决方案,我提供了对其他解决方案的改进。)
答案 3 :(得分:0)
如果你想在终端窗口标题中添加日期并且你的终端支持它,你可以这样做
#! /bin/bash
while :
do
printf '\033]0;%s\007' "$(date)"
sleep 1
done &
它不会影响任何其他终端输出。