免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2474 | 回复: 6
打印 上一主题 下一主题

在终端中“显示动态的时间提示符” [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-26 20:43 |只看该作者 |倒序浏览
刚才看了一个贴子,用到tput工具,可以随意写屏幕,很有意思,我写了一个“显示动态时间”作为提示符的函数

环境是GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)

大家可以把这个函数定义在用户目录下的登录脚本“.profile”中,并在“.profile”后面加一句mytime&,让用户登录后自动在后台执行mytime函数。这样在后台运行mytime时,只要前台进程是bash时,时间就会动态地显示在提示符中! 而在其它进程比如vim为前台进程时则不会显示动态的时间

我定义的PS1='[\t]\h:\w\$>'


function mytime {
           while :
           do           
           if ! ps -p $$|grep -q $$;then         #加一个判断:如果终端用户已经logout了,就退出这个函数,不然会产生孤进程的。
                exit 0
           fi
           if ps T|grep -qE 's\+.*bash';then    #加一个判断:如果终端的bash处于前台进程就打印时间。
         tput sc
             tput civis
             tput hpa 1                                  #这个1表示在当前行的第一列显示动态的时间,与PS1中的\t所处的位置相同就行了。
          echo -n $(date +%H:%M:%S)
             tput rc
             tput cnorm
           fi
           sleep 1
           done
}

[ 本帖最后由 dream3401 于 2009-3-27 15:07 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-03-26 20:45 |只看该作者
这个好像......

论坛徽章:
0
3 [报告]
发表于 2009-03-27 07:55 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2009-03-27 12:08 |只看该作者
欢迎测试!

[ 本帖最后由 dream3401 于 2009-3-27 14:39 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-03-27 13:38 |只看该作者
好东西啊~支持+学习了~

论坛徽章:
0
6 [报告]
发表于 2009-03-27 20:11 |只看该作者
学习分享精神很好,学习支持一下

论坛徽章:
0
7 [报告]
发表于 2012-01-12 00:16 |只看该作者
关于tput的文章太少了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP