El siguiente comando envía un comando para sftpusar una línea:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home"
Cómo enviar múltiples líneas para sftpusar una línea. ¿Hay alguna manera de insertar retornos de carro o algo para lograr esto, por ejemplo:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home\n cd /myhome\n get file"
La idea es NO usar la sftp -bopción donde se cargan comandos de listado de archivos externos.

<<<fue introducido primero por zsh (aunque inspirado enrc) y luego fue agregado a ksh93 y luego a bash.zshhabilidades.Use la
-b/--batchfileopción para tener un manejo adecuado de errores:fuente
Sí, solo puedes usar
echo -efuente
echoes muy no estándar,echo -eno funciona igual en todas partes, por lo que primero debe verificarlo. Alternativamente, simplemente use elprintfque es mucho más portátil y debería funcionar igual en todas partes.No es necesario evitar la
-bopción de evitar escribir el archivo por lotes en el disco. Mediante la sustitución de procesos , puede crear el lote sobre la marcha.fuente
Usar comando sftp nativo
fuente
lcdycdhacer cosas diferentes. Acaba de combinar los caminos en algo que no existirá.Mybru, puedes canalizar tus comandos así:
fuente