if语句中的bash EOF

Art*_*hur 3 bash conditional eof

我试图在Bash的IF ELSE语句中执行操作,但收到类似这样的错误:

语法错误:文件结束意外(期待"fi")

现在我对此很新,所以解决我的问题可能不是那么困难:)

if [ "$DAYNAME" = 'Sunday' ]; then
    echo 'The backup will be uploaded'
    ftp -n $HOST <<EOF
        quote USER $USER
        quote PASS $PASSWD
        put $filetoday
        delete ${filethreeweeksago}
        quit
    EOF
fi
Run Code Online (Sandbox Code Playgroud)

当然,变量已经填满.

我认为它与EOF表示法有关,因为当我删除它们时,问题就会消失.不幸的是,我不知道如何在没有EOF表示法的情况下使用代码.

谁能告诉我为什么会出现这个错误?

cni*_*tar 15

删除空白,它应该工作:

    EOF
^^^^
Run Code Online (Sandbox Code Playgroud)


小智 7

如果要保留制表符,请在 EOF 中添加破折号:来自:

ftp -n $HOST <<EOF
Run Code Online (Sandbox Code Playgroud)

到:

ftp -n $HOST <<-EOF
Run Code Online (Sandbox Code Playgroud)