我是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:\ drive并将其添加到环境变量(路径)。