使用bash here-doc"意外的文件结束"时出错

hax*_*ode 11 ssh bash

我收到以下错误,该错误在我的代码的最后一行标记(为空):

syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么会这样说.我只是想尝试使用here-docssh连接:

#!/bin/sh

connectToServer() {
   ssh -t root@$1 <<- ENDSSH
      echo "Connected to server!"
   ENDSSH
}

connectToServer $1
Run Code Online (Sandbox Code Playgroud)

这段代码出了什么问题?

编辑

感谢那些帮助我解决这个问题的人.我的剧本有一些问题; 我在线上使用空格:

echo "Connected to server" 
Run Code Online (Sandbox Code Playgroud)

而不是制表符.在关闭之前我还包括空间,ENDSSH这导致了EOF.这些变化是我的问题的一部分,但解决它的最后一件事是删除我关闭后出现的额外空格字符ENDSSH.

anu*_*ava 13

问题是关闭前的空格ENDSSH.以前取出所有领先的空间ENDSSH.


Bar*_*mar 8

ENDSSH标志必须是在左边距:

connectToServer() {
   ssh -t root@$1 << ENDSSH
      echo "Connected to server!"
ENDSSH
}
Run Code Online (Sandbox Code Playgroud)

使用时,<<- ENDSSH您可以缩进标记,但必须缩进Tab字符,而不是空格.