• 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 "$@"
  • 相关阅读:
    Web前端一种动态样式语言-- Less
    Windows下查看8080进程及结束进程命令
    Java应用程序实现屏幕的"拍照"
    批处理命令 BAT备份MySQL数据库
    LineNumberReader类
    SAXReader
    linux打包压缩命令汇总
    Jquery获取选中的checkbox的值
    Jquery_联系电话正则表达式
    CSS overflow 属性
  • 原文地址:https://www.cnblogs.com/dragonsuc/p/4362579.html
Copyright © 2020-2023  润新知