0

我是 bash 的新手。我正在尝试配置 searchguard(elasticsearch 的插件)。为此,我需要运行 sgadmin.sh 文件。以下是文件的内容。

#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
BIN_PATH="java"

if [ -z "$JAVA_HOME" ]; then
    echo "WARNING: JAVA_HOME not set, will use $(which $BIN_PATH)"
else
    BIN_PATH="$JAVA_HOME/bin/java"
fi

"$BIN_PATH" $JAVA_OPTS -Dorg.apache.logging.log4j.simplelog.StatusLogger.level=OFF -cp "$DIR/../*:$DIR/../../../lib/*:$DIR/../deps/*" com.floragunn.searchguard.tools.SearchGuardAdmin "$@"

下面是我们运行 sgadmin.sh 文件时收到的错误。

$(BASH_SOURCE[0]): bad substitution
Error: Could not find or load main class com.floragunn.searchguard.tools.SearchGuardAdmin

谁能解释一下上面的代码是什么意思,更具体地说是最后一行

"$BIN_PATH" $JAVA_OPTS -Dorg.apache.logging.log4j.simplelog.StatusLogger.level=OFF -cp "$DIR/../*:$DIR/../../../lib/*:$DIR/../deps/*" com.floragunn.searchguard.tools.SearchGuardAdmin "$@"

注意:我们的环境是 Windows server 2012 要执行 .sh 文件,我们已将 SH 文件夹复制到 C:\ 驱动器并将其添加到环境变量(路径)中。

4

0 回答 0