首页 > 其他分享 >在终端上显示时间

在终端上显示时间

时间:2023-06-12 15:23:19浏览次数:51  
标签:显示 tput cols 命令 while 时间 终端 光标 COLUMNS

 原文链接:https://kodango.com/put-a-console-clock-in-top-right-corner

  在终端上显示时间:Put a console clock in top right corner。文中给出了两种方法,一种是利用ANSI Escape Sequences,另外一种是通过tput这个命令。

第一种方法

命令如下:

while true; do echo -ne "\e[s\e[0;$((COLUMNS-27))H$(date)\e[u"; sleep 1; done &

效果图见:

命令解释:

1.首先这串命令是包含在while循环中的,每隔1秒更新一次;

while true; do cmd; sleep 1; done &

2.echo选项解释,-e的意思是可以显示转义序列,而-n是指不打印回车;

3.\e[s\e[0;$((COLUMNS-27))H$(date)\e[u是这里的重点,下面是说明:

$(date)是打印当前时间,也是这里显示的内容,其余的就是上面说说的ANSI Escape Sequences;其中,"\e[s"的意思是指保存当前光标位置;"\e[0;$((COLUMNS-27))H"是指迁移光标到指定的坐标(0, $((COLUMNS-27))),这里$COLUMNS保存的是当前终端窗口的列数;"\e[u"与"\e[s"是相对的,表示恢复之前保存的光标位置。

第二种方法

命令如下:

while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &

命令效果同上,这里主要利用tput这个命令来替换上面的ANSI Escape Sequences,步骤都是差不多的:
1. 首先保存当前光标位置(save cursor):tput sc;
2. 获取当前终端窗口的列数:tput cols;
3. 设定光标要移动到目标位置:tput cup 0 $(($(tput cols)-29));
4. 最后恢复上次保存的光标位置(restore cursor):tput rc;

是不是觉得用tputc更加清爽,可读性更加,而且tput命令的功能不仅限与此,它还可以做更多终端的操作,比如设置文本的颜色、粗体等等,具体可以看它的man手册,而tput可以设置的属性可以参考man terminfo。当然,网上应该也有一些不错的参考文章,这里推荐一篇IBM上的tput入门

这种做法可以推广,你可以选择自己想显示的内容,比如当前系统的一些负载状况:

while true; do tput sc; tput cup 0 $(($(tput cols)-74)); awk '{print $1,$2,$3}' /proc/loadavg; tput rc; sleep 10; done &
   

标签:显示,tput,cols,命令,while,时间,终端,光标,COLUMNS
From: https://www.cnblogs.com/guochaoxxl/p/17475119.html

相关文章

  • hdu2079选课时间(背包)
    思路:相当于一个裸的多重背包#include<iostream>#include<cstdio>usingnamespacestd;inta[20],num[20],dp[50];intmain(){ intT; scanf("%d",&T); while(T--) { intn,m; scanf("%d%d",&n,&m); for(inti=1;i<=m;i......
  • 花了半天时间,使用spring-boot实现动态数据源,切换自如
      在一个项目中使用多个数据源的情况很多,所以动态切换数据源是项目中标配的功能,当然网上有相关的依赖可以使用,比如动态数据源,其依赖为,<dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.5.1</v......
  • 账面库存数量(是基本单位数量)如何按2个单位显示
    账面库存数量(是基本单位数量)如何按2个单位显示举例:1、商品基本单位是件,大单位是盒2、启用2个数字自定义字段(大单位数量、小单位数量),启用1个文本自定义字段(账面库存自定义辅助数量)  3、设置自定义公式1)给“大单位数量”设置公式:if(parseInt(【账面库存】/【辅助单......
  • idea java项目中,中文显示成Unicode(UTF-16编码)的字符,修改为中文显示
    idea选择File选择Setings搜索框搜索fileencodings勾选Transparentnative-to-asciiconversion      ......
  • P1425 小鱼的游泳时间
    小鱼的游泳时间题目描述伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按小时制计算),它发现自己从时分一直游泳到当天的时分,请你帮小鱼计算一下,它这天一共......
  • RK3568开发板Buildroot 系统设置显示颜色格式
    BuildrootSDK内Weston目前默认显示格式为ARGB8888,对于某些低性能平台,可以在weston.ini的core段配置为RGB565。修改文件系统中/etc/xdg/weston/weston.ini文件,修改如下所示:[core]#xrgb8888|rgb565|xrgb2101010gbm-format=rgb565也可以在weston.ini的output段单独配......
  • 深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类
    深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类方法、注意力机制1.时间偏移模块(TSM)视频流的爆炸性增长为以高精度和低成本执行视频理解任务带来了挑战。传统的2DCNN计算成本低,但无法捕捉视频特有的时间信息;3DCNN可以得到良好的性能,但计算量......
  • 深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类
    深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类方法、注意力机制1.时间偏移模块(TSM)视频流的爆炸性增长为以高精度和低成本执行视频理解任务带来了挑战。传统的2DCNN计算成本低,但无法捕捉视频特有的时间信息;3DCNN可以得到良好的性能,但计算......
  • 暑假,多么适合实习的时间
    本文首发自公粽hao「林行学长」,欢迎来撩,免费领取20个求职工具资源包。了解校招、分享校招知识的学长来了!马上就要暑假了,想必不少同学有了暑期好好玩耍的准备。但更多的可能是为考研、秋招、实习做准备。作为经历过秋招的人,学长真的觉得利用暑期进行实习是一个为自己简历添彩的经历......
  • 雷达原理与系统 第十八讲 雷达终端(1)
    雷达原理与系统第十八讲雷达终端(1)0.概述——1).主要分为2讲,即4个方面内容,包括——A.雷达终端任务B.雷达终端显示器C.雷达点迹录取D.雷达数据处理2).本文主要介绍——A.雷达终端任务B.雷达终端显示器3).雷达接收机将天线接收到的回波信号进行射频放大、混频......