我在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 "}")
我不知道发生了什么事,请帮助
答案 0 :(得分:2)
需要[ and ]
周围的空格,我认为您需要-f
来检查这是否是文件。
您需要替换:
if[f $PIDFILE];
由:
if [ -f "$PIDFILE" ];
或更好(因为您使用BASH)
if [[ -f "$PIDFILE" ]];