0
Ich bin neu in Unix-Skript, unten ist mein Skript, bekomme ich diesen Fehler beim Ausführen dieser Datei: /root/bin/autodownload.sh: Zeile 20: Syntaxfehler: unerwartetes Ende der DateiUnix Shell SFTP Auto Download-Datei
while [ 1 ]
do
sftp -o IdentityFile=/root/.ssh/ixxx [email protected] << EOF
cd outbound
lcd /home/xxx/
get Abc*
bye
EOF
sleep 60
done
setzen die 'EOF' am Anfang der Zeile - es ist nicht als das Ende des hier Dokument interpretiert, wenn es nicht am Anfang der Zeile ist. – Petesh
ODER verwenden Sie '<< - EOF', die Tabs für den Einzug erlaubt/erfordert. Das schließende 'EOF' muss eingerückt sein (so viele wie du willst). Der Block im Inneren kann führende Tabs und Leerzeichen sein. Ich benutze oft '\ t \ t \ t \ s \ s \ s \ s' (nicht diese wörtlichen Werte, nur die regulären Schlüssel und ), um einen Einrückstrich mit zwei Leerzeichen zu haben (zB für Kommentare oder andere Gründe). Viel Glück. –
shellter
@shellter '<< - EOM' * erfordert * Tabs für das 'stripping'/'ignoring' Verhalten, was es wirklich knifflig macht und alles zu leicht vermasselt – Petesh