**对输出格式中的空格处理**

本文档展示了在检查Tomcat实例状态时,如何处理输出中的空格以适应不同长度的实例名称。通过使用 Awk 命令显示目录下的 Tomcat 服务器实例,并在名称后添加空格以对齐。当实例名称长度超过预设空格数时,可能导致显示不正确,如 'tomcat-tomcat-tomcat-tomcat-tomcat-tomcat' 这样的长名称会导致对齐混乱。
#!/bin/sh
a=(" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ")
TOMCAT_HOME=/opt/oracle/tomcat

sprint_status()
{
echo
echo "Processes in Instance: `hostname`"
echo "-----------------------------+------------+-----------"
echo "instance                     |  status    |   pid     "
echo "-----------------------------+------------+-----------"
 for i in `ls -l $TOMCAT_HOME| awk '/^d/{ print $NF}'`
    do
    str=`echo $i | awk '{print length($1)}'`
    ps aux | grep -w $i  | grep -v "grep" | grep -vw "sh" > /dev/null
    ret=$?
    if [ $ret -eq 0 ]; then
       echo "$i${a:$str}|  Alive     |   `ps aux | grep -w $i|grep -vw "sh" |grep -v "grep"| awk '{print $2}'`   "
     else
       echo "$i${a:$str}|  Down      |   N/A   "
    fi
    RETVAL=$?
   done
   echo
  exit
}

sprint_status

测试:

[root@SOR_SYS zy]# ls -l /opt/oracle/tomcat/ |awk '/^d/{ print $NF}'
tomcatServer229-1
tomcatServer229-2

[root@SOR_SYS zy]# echo tomcatServer229-1|awk '{print length($1)}'
17

[root@SOR_SYS zy]# a=(" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ")
[root@SOR_SYS zy]# echo "tomcatServer229-1${a:17}|Alive      |             pid"
tomcatServer229-1            |Alive      |             pid
[root@SOR_SYS zy]#

 标绿的地方就是对空格的处理,实际上实例的长度不能够大于a中规定的字符的长度,如果超过了会怎么样呢?

Processes in Instance: SOR_SYS.99bill.com

-----------------------------+------------+-----------
instance                               |  status     |   pid    
-----------------------------+------------+-----------
tomcatServer229-1            |  Down      |   N/A  
tomcatServer229-2            |  Down      |   N/A  

tomcat-tomcat-tomcat-tomcat-tomcat-tomcat Down      |   N/A  

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值