tomcat下bin文件夹下shell文件分析

   在bin下面有9个sh文件,本文将逐步分析,今天就以version.sh为例

  

os400=false
#uname取操作系统名称 如Linux 如果为OS400的操作系统 特殊处理
case "`uname`" in
OS400*) os400=true;;
esac

# resolve links - $0 may be a softlink
# 解析文件或者符号文件 得到真正文件
# /home/dragonsuc/bin/version.sh
# /home/dragonsuc/bin/tm ->/home/dragonsuc/bin/version.sh
#当以符号连接启动时 找到真正文件/home/dragonsuc/bin/version.sh
#取得当前执行文件名称
PRG="$0"
#判断文件是否是符号文件 文件存在并且是符号文件
while [ -h "$PRG" ] ; do
  # lr  。。。。 /home/dragonsuc/bin/tm ->/home/dragonsuc/bin/version.sh
  ls=`ls -ld "$PRG"`
  # 注意下面两行中expr精妙用法
  # 得到/home/dragonsuc/bin/version.sh
  link=`expr "$ls" : .*-> \(.*\)$`
  if expr "$link" : /.* > /dev/null; then
    PRG="$link"
  else
    PRG=`dirname "$PRG"`/"$link"
  fi
done
#得到目录路径 /home/dragonsuc/bin
PRGDIR=`dirname "$PRG"`
EXECUTABLE=catalina.sh

# Check that target executable exists
if $os400; then
  # -x will Only work on the os400 if the files are:
  # 1. owned by the user
  # 2. owned by the PRIMARY group of the user
  # this will not work if the user belongs in secondary groups
  eval
else
  #测试文件的可执行权限
  if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
    echo "Cannot find $PRGDIR/$EXECUTABLE"
    echo "The file is absent or does not have execute permission"
    echo "This file is needed to run this program"
    exit 1
  fi
fi
# 执行文件 $@是传递执行的参数
exec "$PRGDIR"/"$EXECUTABLE" version "$@"

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。