El siguiente comando envía un comando para sftp
usar una línea:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home"
Cómo enviar múltiples líneas para sftp
usar 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 -b
opció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.zsh
habilidades.Use la
-b/--batchfile
opción para tener un manejo adecuado de errores:fuente
Sí, solo puedes usar
echo -e
fuente
echo
es muy no estándar,echo -e
no funciona igual en todas partes, por lo que primero debe verificarlo. Alternativamente, simplemente use elprintf
que es mucho más portátil y debería funcionar igual en todas partes.No es necesario evitar la
-b
opció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
lcd
ycd
hacer cosas diferentes. Acaba de combinar los caminos en algo que no existirá.Mybru, puedes canalizar tus comandos así:
fuente