O comando a seguir envia um comando para sftp
usar uma linha:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home"
Como enviar várias linhas para sftp
usar uma linha. Existe uma maneira de inserir retornos de carro ou algo para conseguir isso, por exemplo:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home\n cd /myhome\n get file"
A idéia é NÃO usar a sftp -b
opção em que um comando de listagem de arquivo externo é carregado.
<<<
foi introduzido primeiro pelo zsh (embora inspirado porrc
) e mais tarde foi adicionado ao ksh93 e depois ao bash.zsh
habilidades.Use a
-b/--batchfile
opção para ter um tratamento de erro adequado:fonte
Sim, você pode apenas usar
echo -e
fonte
echo
é muito fora do padrão -echo -e
não funciona da mesma maneira em todos os lugares; portanto, você deve verificar primeiro. Como alternativa, basta usar oprintf
que é muito mais portátil e deve funcionar da mesma maneira em todos os lugares.Não é necessário evitar a
-b
opção de gravar o arquivo em lotes no disco. Usando a substituição do processo, você pode criar o lote rapidamente.fonte
Use o comando sftp nativo
fonte
lcd
ecd
fez coisas diferentes. Você acabou de combinar os caminhos em algo que não existirá.Mybru, você pode exibir seus comandos da seguinte maneira:
fonte