为什么bash脚本中总是出现语法错误

为什么bash脚本中总是出现语法错误,bash,command,Bash,Command,我在bash中有以下函数,它以前是开关的case部分,但是无论我把它放在哪里,我总是会得到一个语法错误 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 --qui

我在bash中有以下函数,它以前是开关的case部分,但是无论我把它放在哪里,我总是会得到一个语法错误

    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 "}")

我不知道发生了什么,请帮助检查这是否是一个文件

您需要替换:

if[f $PIDFILE];
作者:

或者更好(因为您使用的是BASH)


我真不敢相信空间会造成如此大的破坏,谢谢!是的,BASH/shell语法在使用空格和引号时非常严格。
if [ -f "$PIDFILE" ];
if [[ -f "$PIDFILE" ]];