ottengo il seguente errore che viene langue sull'ultima riga del mio codice (che è vuoto):errore quando si utilizza un bash qui-doc "fine inaspettata di file"
syntax error: unexpected end of file
non riesco a capire fuori perché sta dicendo questo. Sto semplicemente cercando di utilizzare un here-doc
per una connessione SSH:
#!/bin/sh
connectToServer() {
ssh -t [email protected]$1 <<- ENDSSH
echo "Connected to server!"
ENDSSH
}
connectToServer $1
Cosa c'è di sbagliato in questo codice?
EDIT
Grazie a quelli di voi che mi hanno aiutato a risolvere questo. C'erano un paio di cose che non andavano nella mia sceneggiatura; Stavo usando gli spazi sulla linea:
echo "Connected to server"
invece di tabulazione caratteri. Stavo includendo anche gli spazi prima della chiusura ENDSSH
che stava causando l'EOF. Questi cambiamenti sono stati una parte del mio problema, ma l'ultima cosa che ha risolto è stata la rimozione di uno spazio aggiuntivo che appariva DOPO la mia chiusura ENDSSH
.
Ho appena provato questo e l'errore è lo stesso. : -/ –
Ho riprodotto lo stesso errore inserendo degli spazi prima di chiudere 'ENDSSSH' Va via quando ho spogliato tutti gli spazi iniziali. – anubhava
Ho collegato il mio script a 'hexdump -C' e ho scoperto che non era uno spazio iniziale o alcun carattere prima di' ENDSSH' era un carattere '0a' o di nuova riga dopo' ENDSSH'. L'ho spogliato e ora funziona. Grazie per avermi aiutato a trovarlo! –