Następujące polecenie powoduje wysłanie jednego polecenia do sftp
jednego wiersza:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home"
Jak wysłać wiele linii do sftp
korzystania z jednej linii. Czy istnieje sposób wstawiania zwrotów karetki lub coś takiego, na przykład:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home\n cd /myhome\n get file"
Chodzi o to, aby NIE używać sftp -b
opcji, w której ładowane są polecenia zewnętrznego wyświetlania plików.
<<<
został wprowadzony najpierw przez zsh (choć zainspirowany przezrc
), a następnie dodany do ksh93, a następnie bash.zsh
umiejętności.Użyj
-b/--batchfile
opcji, aby mieć właściwą obsługę błędów:źródło
Tak, możesz po prostu użyć
echo -e
źródło
echo
jest bardzo niestandardowy -echo -e
nie działa wszędzie tak samo, więc najpierw musisz to sprawdzić. Alternatywnie, po prostu użyj,printf
który jest znacznie bardziej przenośny i powinien działać wszędzie tak samo.Nie trzeba unikać
-b
opcji zapisywania pliku wsadowego na dysk. Korzystając z podstawiania procesów , możesz utworzyć partię w locie.źródło
Użyj natywnej komendy sftp
źródło
lcd
i robiłeścd
różne rzeczy. Właśnie połączyłeś ścieżki w coś, co nie będzie istnieć.Mybru, możesz wprowadzać swoje polecenia w następujący sposób:
źródło