Der folgende Befehl sendet einen Befehl an die sftp
Verwendung einer Zeile:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home"
So senden Sie mehrere Leitungen an sftp
eine Leitung. Gibt es eine Möglichkeit, Zeilenumbrüche einzufügen oder etwas, um dies zu erreichen, zum Beispiel:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home\n cd /myhome\n get file"
Die Idee ist, NICHT die sftp -b
Option zu verwenden, bei der Befehle für eine externe Dateiliste geladen werden.
<<<
wurde zuerst von zsh eingeführt (obwohl inspiriert vonrc
) und später zu ksh93 und dann zu bash hinzugefügt.zsh
Fähigkeiten stärken .Verwenden Sie die
-b/--batchfile
Option für eine ordnungsgemäße Fehlerbehandlung:quelle
Ja, Sie können nur verwenden
echo -e
quelle
echo
ist sehr ungewöhnlich -echo -e
funktioniert nicht überall gleich, also müsstest du zuerst nachsehen. Alternativ können Sie auch nur das verwenden,printf
was viel tragbarer ist und überall gleich funktionieren sollte.Es ist nicht erforderlich, die
-b
Option zu umgehen, um das Schreiben der Stapeldatei auf die Festplatte zu vermeiden. Mit der Prozessersetzung können Sie die Charge im laufenden Betrieb erstellen.quelle
Verwenden Sie den nativen Befehl sftp
quelle
lcd
undcd
mache verschiedene Dinge. Sie haben die Pfade zu etwas kombiniert, das es nicht geben wird.Mybru, du kannst deine Befehle so leiten:
quelle