cu_Cbear 发表于 2011-11-24 15:35

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

**对输出格式中的空格处理** .#!/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

测试:



# ls -l /opt/oracle/tomcat/ |awk '/^d/{ print $NF}'
tomcatServer229-1
tomcatServer229-2

# echo tomcatServer229-1|awk '{print length($1)}'
17

# a=(" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ")
# echo "tomcatServer229-1${a:17}|Alive      |             pid"
tomcatServer229-1            |Alive      |             pid
#

标绿的地方就是对空格的处理,实际上实例的长度不能够大于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

Shell_HAT 发表于 2011-11-24 20:58

标绿的地方在哪里?转帖也有点职业精神嘛
页: [1]
查看完整版本: **对输出格式中的空格处理** .