0

我正在编写一个 shell 脚本来启动Zookeeper服务器并将日志写入zookeeper.out nohup文件,但是当我尝试启动它时,会出现以下错误:

> : not foundh: 2: zookeeper.sh:
: not foundh: 8: zookeeper.sh:
: not foundh: 10: zookeeper.sh:
---- Starting Zookeeper ----
: not foundh: 12: zookeeper.sh:
: not foundh: 13: zookeeper.sh: }
: not foundh: 14: zookeeper.sh:
---- Stopping Zookeeper ----
: not foundh: 17: zookeeper.sh:
: not foundh: 18: zookeeper.sh: }
: not foundh: 19: zookeeper.sh:
: not foundh: 21: zookeeper.sh: stop
: not foundh: 22: zookeeper.sh: start
: not foundh: 23: zookeeper.sh: }
: not foundh: 24: zookeeper.sh:
zookeeper.sh: 25: zookeeper.sh: Syntax error: word unexpected (expecting "in")

我似乎无法理解我做错了什么。

脚本:

 #!/bin/sh

    JAVA_HOME=""
    KAFKA_HOME="/home/ubuntu/maxFlow/kafka_2.12-1.1.0"
    APP_HOME="/home/ubuntu/maxFlow/"
    APP_NAME=max-flow-0.0.1-SNAPSHOT
    APP_PORT=80

    start() {

        echo "---- Starting Zookeeper ----"
nohup $KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties > /dev/null 2>&1 & > zookeeper.out
    }

    stop() {
         echo "---- Stopping Zookeeper ----"
         nohup $KAFKA_HOME/bin/zookeeper-server-stop.sh  > /dev/null 2>&1 & > zookeeper.out
    }

    restart() {
             stop
             start
    }

    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
      restart)
            stop
            start
            ;;
      *)
            echo "No case"
            exit 1
            ;;
    esac

    exit 0;

我从https://www.shellscript.sh/case.html. 谢谢

4

1 回答 1

1

我在虚拟机上,我用 Windows 记事本启动了编辑器,并将脚本转换为dos. 因此,我最终安装了dos2unix用于转换脚本的 . 然后,脚本起作用了。

于 2018-12-14T12:16:46.387 回答