#!/usr/bin/env bash
############################################
#用 途: 用于脚本输入参数的规范处理
#测 试:假设文件名为test.sh , 执行./test.sh --daemon --helper=abc --host_type=os
############################################
curdir=`dirname "$0"`
echo "curdir:"$curdir
curdir=`cd "$curdir"; pwd`
echo "curdir:"$curdir
#"$*" 把所有参数合并成一个字符串
for arg in "$*"; do
echo "****:" $arg
done
echo --------------
#"$@" 会得到一个字符串参数数组
for arg in "$@"; do
echo "@@@@:" $arg
done
# getopt 命令用于解析脚本的命令行参数,并根据定义的选项来重新排列这些参数
# -l 'helper:':定义一个长选项 --helper,后面必须跟一个参数。冒号表示这个选项需要一个参数。
OPTS=$(getopt \
-n $0 \
-o '' \
-l 'daemon' \
-l 'helper:' \
-l 'host_type:' \
-l 'debug' \
-l 'logconsole' \
-- "$@")
# 将getopt的输出设置为脚本的位置参数($1, $2, $3, ...)
eval set -- "$OPTS"
RUN_DAEMON=0
HELPER=
HOST_TYPE=
ENABLE_DEBUGGER=0
RUN_LOG_CONSOLE=0
while true; do
case "$1" in
--daemon) RUN_DAEMON=1 ; shift ;;
--helper) HELPER=$2 ; shift 2 ;;
--host_type) HOST_TYPE=$2 ; shift 2 ;;
--debug) ENABLE_DEBUGGER=1 ; shift ;;
--logconsole) RUN_LOG_CONSOLE=1 ; shift ;;
--) shift ; break ;;
*) echo "Internal error" ; exit 1 ;;
esac
done
echo "run_daemon:$RUN_DAEMON helper:$HELPER host_type:$HOST_TYPE "
export STARROCKS_HOME=`cd "$curdir/.."; pwd`
export DORIS_HOME="$STARROCKS_HOME"
export PID_DIR=`cd "$curdir"; pwd`
echo "doris_home:"$DORIS_HOME
echo "pid_dir:"$PID_DIR