- 论坛徽章:
- 0
|
刚才看了一个贴子,用到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 编辑 ] |
|