Chcę lftp -c
zrobić całą sesję za jednym razem (ponieważ będę to później uruchamiać ze skryptu) i udało mi się, -e
ale ta ofc pozostawia mnie z interaktywną sesją, której nie chcę.
Stany ręczne
-c commands
Execute the given commands and exit. Commands can be separated with a semicolon, `&&'
or `||'. Remember to quote the commands argument properly in the shell. This option
must be used alone without other arguments.
Ale nie rozumiem, jak powinienem poprawnie cytować i łączyć moje polecenia / interakcje.
lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com
działa doskonale. Ale chcę wyjść po wykonaniu polecenia;
lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt"
po prostu krzyczy na mnie, a właściwie na dowolną kombinację cytatów, które wypróbowałem ( ||
lub &&
niezależnie)
Odpowiedzi:
powinien to zrobić.
Jeśli to nie zadziała, spróbuj dodać
/etc/lftp.conf
następujące wiersze:źródło
' " : ;
lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com
źródło
lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com
i umieść swoje poświadczenia w ~ / .netrc jak
machine ftp.yourhost.com login your_username password your_password
Wpisywanie haseł w cli jest absolutnie zabronione, ponieważ są one nawet czytelne, gdy używasz ps -aux podczas wysyłania .. oprócz historii bash.
źródło