为什么我总是在bash脚本中遇到语法错误

时间:2014-05-07 19:44:40

标签: bash command

我在bash中有以下功能,以前是交换机的一部分,但无论我把它放在哪里我都会遇到语法错误

    do_start(){
    if[f $PIDFILE]; then
    echo "supervisord already running: $PIDFILE" exit 1 
    fi
    log_begin_msg "Starting Supervisor daemon manager..."
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $SUPERVISORD -- $OPTS || log_end_msg 1
    log_end_msg 0
    }

我得到了:

    runScript.sh: Syntax error: "then" unexpected (expecting "}")

我不知道发生了什么事,请帮助

1 个答案:

答案 0 :(得分:2)

需要[ and ]周围的空格,我认为您需要-f来检查这是否是文件。

您需要替换:

if[f $PIDFILE];

由:

if [ -f "$PIDFILE" ];

或更好(因为您使用BASH)

if [[ -f "$PIDFILE" ]];