[shell] tomcat启动脚本评析 - 1. startup.sh

[shell] tomcat启动脚本赏析 - 1. startup.sh
让我们一起来欣赏一下tomcat的启动脚本是怎么写的,重点关注一下其中的shell技巧

#!/bin/sh  #将用sh shell执行


PRG="$0"  #当前命令,即startup.sh

while [ -h "$PRG" ] ; do #-h同-L,用于判断文件是否是符号连接;这段代码用于找到连接背后的真实文件;由于连接的target本身可能也是个连接,所以这里用while循环找出终极连接指向的真实文件
  ls=`ls -ld "$PRG"` #为了找出本连接的target,需要执行一下ls命令;这里暂时先把ls命令的输出赋给$ls变量
  link=`expr "$ls" : '.*-> \(.*\)$'`  #通过expr的模式匹配功能,找出$ls中的target部分,并赋给$link变量
  if expr "$link" : '/.*' > /dev/null; then #判断$link是否以"/"开头,如果是,则它就是一个完整的路径;这里的> /dev/null是为了使expr的输出不打印在屏幕上
PRG="$link"
  else
    PRG=`dirname "$PRG"`/"$link" #如果$link没有以"/"开头,那它就是一个相对路径;也就是说target的完整路径 = 符号连接的目录/相对路径
  fi
done
 
PRGDIR=`dirname "$PRG"` #得出真实命令文件所处的目录
EXECUTABLE=catalina.sh 

  if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then #判断一下catalina.sh是否存在且可执行
    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

exec "$PRGDIR"/"$EXECUTABLE" jpda run "$@" #执行catalina.sh, 提供的参数包括jpda, run 和startup.sh 收到的参数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值