Chinaunix首页 | 论坛 | 博客
  • 博客访问: 36131
  • 博文数量: 5
  • 博客积分: 152
  • 博客等级: 入伍新兵
  • 技术积分: 74
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-30 09:26
文章分类

全部博文(5)

文章存档

2011年(5)

我的朋友

分类: 系统运维

2011-01-31 09:48:58

screen 是个好东西,谁用谁知道,尤其是在网络连接不稳定的情况下。
但当你管理多台机器的时候,说不定会忘掉退出 screen ,至少记性一向不好的我是如此。所以本人写了个简单的脚本,通过 PS1 变量来提示我当前机器 screen 打开的情况。
脚本内容写到 .bashrc 即可,内容如下:
  1. my_bash_PID="$$"
  2. my_bash_PPID="$(ps -weF | awk '$2=="'$my_bash_PID'"{print $3}')"
  3. SCREEN_PID="$(ps -weF | grep -w SCREEN | awk '$2=="'$my_bash_PPID'"{print $2}')"
  4. if pgrep screen &> /dev/null
  5. then
  6.      if [ "$my_bash_PPID" = "$SCREEN_PID" ]
  7.      then
  8.          PS1='\u@\[\e[30;43m\]\h\[\e[0m\]:\w>'
  9.      else
  10.          PS1='\u@\[\e[31;43m\]\h\[\e[0m\]:\w>'
  11.      fi
  12. else
  13.      PS1='\u@\h:\w>'
  14. fi

首先,登陆到当前机器上面没有运行着 SCREEN 时,PS1 是原样的:

如果后台有运行 SCREEN 跑着任务,那么 PS1 的 host 部分会是黄底红字:

如果登录到一个 SCREEN 中,那么 PS1 的 host 部分会是黄底黑字:


现在知道,原来使用 $TERM 变量就可以很轻松地得到当前使用的 TERM 类型了……
阅读(1212) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~